pgfplots 使用“轴相等”选项忽略 xmin/xmax

pgfplots 使用“轴相等”选项忽略 xmin/xmax

似乎如果我axis equal使用 pgfplots 设置选项,则不会遵循xminxmax选项。下面的 MWE 得出:

在此处输入图片描述

请注意,在两种情况下yminymax都是所需的,但 x 轴上的极限是不是选项axis equal

我想要axis equal,但是能够指定绘制轴的xmim限制。xmax

平均能量损失

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    axis y line=center,
    axis x line=middle, 
    xmin=-8,
    xmax=8,
    ymin=-8,
    ymax=8,
    xtick={-8, -6, ..., 8},
    ytick={-8, -6, ..., 8},
    ylabel={axis equal},
    axis equal,
    ]
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
    axis y line=center,
    axis x line=middle, 
    xmin=-8,
    xmax=8,
    ymin=-8,
    ymax=8,
    xtick={-8, -6, ..., 8},
    ytick={-8, -6, ..., 8},
    ylabel={without axis equal},
    %axis equal, <--- main change from above
    ]
\end{axis}
\end{tikzpicture}
\end{document}

答案1

它们是三组参数:

  • xmax-家庭
  • 单位向量的长度。
  • 由此产生的tikzpicture

随后是三个比率:

  • A= (xmax- xmin)/(ymax- ymin
  • = |x单位向量|/|y单位向量|
  • C= 宽度/高度(的tikzpicture

清楚地A×=C

控制,PGFPLOTS 引入unit vector ratio。现在如果指定后,PGFPLOTS 有两个选择:

  • keep xmax-family,在这种情况下,它们由用户指定;或者
  • 保持宽度和高度。

因此 PGFPLOTS 引入了另一个选项,称为unit rescale keep size,其中“size”表示宽度和高度。如果为真,C被保留。如果为 false,A被保留。

回到你的问题:axis equal构造如下
pgfplots.code.tex第 1772-1779 行)

/pgfplots/axis equal/.is choice,
/pgfplots/axis equal/true/.style={
  /pgfplots/unit vector ratio=1 1 1,
  /pgfplots/unit rescale keep size=true
},
/pgfplots/axis equal/false/.style={
  /pgfplots/unit vector ratio=,
},
/pgfplots/axis equal/.default=true,

所以我们可以说这axis equal是一个指定的选项C,然后调整A以适应它们。这不是一个让AC

相关内容