pgfplots 中的矩形图

pgfplots 中的矩形图

每当我使用 绘制图表时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=-1ymax=1,但 y 轴实际上超出了该范围,从而产生了一个方形图。我该怎么做才能让 y 轴真的从 到-11同时保持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具体来说,保持单位长度比相等图的尺寸。因此它将覆盖xminxmax等。

axis equal image仅保持单位长度比相等,以便您可以使用它来实现您的目标。

您也可以使用unit vector ratio=1 1来完成相同的任务。从 Heiko 的回答中,您可以看到您可能需要将兼容模式设置为 1.11 或更高版本,以便蓝色弧线正确呈现。

使用上述任一方法都可以缩放绘图的尺寸,而无需缩放单位向量,从而生成如下绘图:

在此处输入图片描述

相关内容