每当我使用 绘制图表时pgfplots
,结果总是方形网格。这通常没问题,但为了节省空间,我希望能够绘制矩形图表。
这是我做的一个小情节在 math.SE 上证明欧拉恒等式
\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2,
xmax=2,
ymin=-1,
ymax=1,
axis lines = middle,
disabledatascaling,
axis equal
]
\addplot[ultra thick, red, ->] coordinates {(0,0) (1,0)};
\addplot[ultra thick, purple, ->] coordinates {(0,0) (-1,0)};
\draw [thick, blue] (axis cs:0.3,0) arc [radius=0.3,start angle=0,end angle=180];
\node[blue] at (axis cs:0.1,0.2) [anchor=south west] {$\pi$};
\end{axis}
\end{tikzpicture}
\end{document}
生成以下图像:
请注意,尽管我指定了ymin=-1
和ymax=1
,但 y 轴实际上超出了该范围,从而产生了一个方形图。我该怎么做才能让 y 轴真的从 到-1
,1
同时保持axis equal
-- 即我如何制作一个矩形图来裁剪出这里一些未使用的空间?
答案1
我认为,unit vector ratio
这就是你正在寻找的:
\documentclass{minimal}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2,
xmax=2,
ymin=-1,
ymax=1,
axis lines = middle,
unit vector ratio=1 2,
]
\addplot[ultra thick, red, ->] coordinates {(0,0) (1,0)};
\addplot[ultra thick, purple, ->] coordinates {(0,0) (-1,0)};
\draw [thick, blue] (axis cs:0.3,0) arc [radius=0.3,start angle=0,end
angle=180];
\node[blue] at (axis cs:0.1,0.2) [anchor=south west] {$\pi$};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
axis equal
具体来说,保持单位长度比相等也图的尺寸。因此它将覆盖xmin
、xmax
等。
axis equal image
仅保持单位长度比相等,以便您可以使用它来实现您的目标。
您也可以使用unit vector ratio=1 1
来完成相同的任务。从 Heiko 的回答中,您可以看到您可能需要将兼容模式设置为 1.11 或更高版本,以便蓝色弧线正确呈现。
使用上述任一方法都可以缩放绘图的尺寸,而无需缩放单位向量,从而生成如下绘图: