考虑下面的 MWE:
\documentclass{standalone}
\usepackage{filecontents}
\usepackage{tikz,pgfplots}
\usetikzlibrary{datavisualization}
\begin{filecontents}{test.csv}
x y
-2 7
-1 2
0 5
1 4
2 8
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\datavisualization
[
scientific axes,
all axes={length=5cm},
x axis={label=x, attribute=x, min value=-2, max value=2},
y axis={label=y, attribute=y, min value=0, max value=10},
visualize as line,
]
data[read from file=test.csv, separator={\space}];
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[height=5cm,width=5cm,
xlabel=x,xmin=2,xmin=-2,
ylabel=y,ymin=0,ymax=10,
enlargelimits=0,tick align=outside]
\addplot[no markers] table[x=x,y=y] {test.csv};
\end{axis}
\end{tikzpicture}
\end{document}
通过将两个图设置为相同width
,height
人们会期望得到即使不完全相同,至少非常(非常)相似的结果。相反,结果是这样的:
我错过了什么?
编辑
怎样才能纠正这个问题?
答案1
似乎width
height
axis
指定了图形的完整尺寸,包括轴标签. (但是,我无法在 pgfplots 手册中确认这一点。编辑:看杰克的评论请参阅下面的来源。)
与此相反的,\datavisualization
它确实使轴(不包括标签)达到您指定的长度。这似乎也得到了 TikZ 手册的支持(“X然后缩放和移动轴,以使其具有指定的长度”。
使用scale only axis
pgfplots 可获得与 相同的行为\datavisualization
。(感谢 Jake 在评论中指出了这一点。)