Scissor LaTeX 中的 pgfplots
pgfplots 宏包在 Scissor LaTeX 中可用于大多数二维图,由它自己的渲染器绘制:坐标轴、折线图、散点图和柱状图、公式、表格和 CSV 文件、对数坐标轴、误差棒、图例、groupplots、fill between 以及俯视的热图;三维视角、axis equal 和 pgfplotstable 的表格暂不支持。
宏包的作用
pgfplots 在 TikZ 图形中根据数据或公式绘制图表。你写 \begin{tikzpicture}\begin{axis}[...],为每个数据系列添加一个 \addplot,pgfplots 会自动选择刻度、图例和颜色。它的选项涵盖对数坐标轴、柱状图、误差棒、颜色映射等等。
Scissor LaTeX 并不运行 pgfplots。排版器读取同样的代码,自己把图绘制为矢量图形,标签使用文档的字体。结果与 pgfplots 的默认效果非常接近,源代码无需修改即可在 TeX 发行版中编译。
这里可用的功能
| 功能 | 在 Scissor LaTeX 中 | 更多 |
|---|---|---|
带标签、标题、图例、网格、刻度和范围的 axis | 可用 | pgfplots 基础 |
线条、标记、颜色、循环列表、smooth、const plot | 可用 | 折线图 |
only marks、散点图 | 可用 | 散点图 |
ybar、xbar、堆叠柱状图、nodes near coords、symbolic x coords | 可用 | 柱状图 |
error bars/.cd, y explicit, +- (x, y) | 可用 | 误差棒 |
semilogyaxis, loglogaxis, xmode=log | 可用 | 对数坐标轴 |
带 group style 的 groupplot(groupplots 库) | 可用 | 组图 |
用 \addplot table 读取内联数据行或项目中的 .csv/.dat 文件 | 可用 | 来自 CSV 的数据 |
带 view={0}{90} 的 \addplot3:surf、matrix plot、contour filled、colorbar | 可用 | 等高线图和热图 |
fill between(fillbetween 库)、name path | 可用 | |
\pgfplotsset{...}、样式、compat= | 可用 | 无论如何设置,行为都与 compat=1.18 相同。 |
使用其他 view 的 \addplot3(真正的三维) | 不支持 | 绘制一个空坐标轴,并显示提示。 |
axis equal | 不支持 | 被忽略并显示提示;坐标轴保持各自的比例。 |
\pgfplotstabletypeset(pgfplotstable) | 不支持 | 会被跳过并显示提示,文件名会被输出。 |
| 未知选项 | 忽略 | 被忽略,并显示注明该选项的提示;其余部分照常绘制。 |
示例
带数值标签的柱状图:
带 nodes near coords 的柱状图
\begin{tikzpicture}
\begin{axis}[ybar, bar width=12pt, ymin=0, ymax=52,
symbolic x coords={Mon,Tue,Wed,Thu}, xtick=data,
nodes near coords, enlarge x limits=0.2,
ylabel={Visitors}, width=7cm, height=5cm]
\addplot coordinates {(Mon,31) (Tue,44) (Wed,38) (Thu,27)};
\end{axis}
\end{tikzpicture}从写在文档中的表格读取两个数据系列,并加上图例:
内联表格中的各列
\begin{tikzpicture}
\begin{axis}[xlabel={Week}, ylabel={Hours of practice},
legend pos=north west, width=7cm, height=5cm]
\addplot table [x=week, y=erika] {
week erika john
1 4 2
2 6 3
3 5 5
4 8 6
};
\addlegendentry{Erika}
\addplot table [x=week, y=john] {
week erika john
1 4 2
2 6 3
3 5 5
4 8 6
};
\addlegendentry{John}
\end{axis}
\end{tikzpicture}从斜角观察的曲面暂时还无法绘制。坐标轴显示为空,“问题”标签页会说明原因:
三维视角不会被绘制
\begin{tikzpicture}
\begin{axis}[view={60}{30}, width=6cm]
\addplot3[surf, domain=-2:2] {x^2 - y^2};
\end{axis}
\end{tikzpicture}“问题”标签页: 3D plots are drawn only when seen from above (view={0}{90}) for now
兼容性
- 从 TeX 发行版迁移到这里: 大多数二维图看起来与那里的效果一致,误差在一两个点以内。真正的三维图、
axis equal以及支持范围之外的选项会在“问题”标签页中注明。 - 从这里迁移到 TeX 发行版: 图无需修改即可在那里配合 pgfplots 编译。
contour lua和contour gnuplot在那里需要 LuaLaTeX 或 gnuplot;contour filled两者都不需要。
完整手册见 CTAN:ctan.org/pkg/pgfplots。不带坐标轴的绘图请参阅 TikZ。
常见问题
在这里使用 pgfplots 需要先安装它吗?
不需要。照常写 \usepackage{pgfplots};Scissor LaTeX 会识别这些代码,并在浏览器中绘制图表。
为什么我的三维图是空的?
目前只能绘制俯视(view={0}{90})的图。其他视角会得到一个空坐标轴,并在“问题”标签页中显示提示。
能根据 CSV 文件中的数据画图吗?
能。把文件添加到项目中,然后写 \addplot table[x=a, y=b, col sep=comma] {file.csv};。
本页的每个示例都在构建网站时由 Scissor LaTeX 排版。 最后更新:2026-11-07