PGF 图不在中心

PGF 图不在中心

我想在pgfplots图表内绘制一些圆圈,但是它们总是偏离中心。

\pgfplotsset{width=7cm, compat=1.12}
\pgfplotsset{compat=1.5.1} 
\begin{tikzpicture}
\begin{axis}[
xmin=-2.5, xmax=2.5,
ymin=-2.5, ymax=2.5,
xtick={-2,-1,0,1,2},
ytick={-2,-1,0,1,2},
grid=major,
]
% standard tikz syntax:
\draw[black] (0,0)
ellipse [
x radius=1, y radius=2];
\draw[red] (0,0)
ellipse [rotate=90,
x radius=1, y radius=2];
\end{axis}
\end{tikzpicture}

根据 pgf-plot 文档,这应该给我(http://pgfplots.sourceforge.net/pgfplots.pdf,第 298 页)

PGF 文档

但相反,我得到的是这样的:

我的图表

你能指出我的错误吗?

答案1

您最后使用了compat两次。因此,这优先于。在旧版本中,绘图坐标应被提及为\pgfplotsset{compat=1.5.1}compat=1.12pgfplots

\draw[black] (axis cs: 0,0) ellipse [...

注意axis cs:。如果不使用axis cs:tikz则使用原点(0,0)位于左下角的坐标,并且由于pgfplots会剪切区域,因此您只能获得第一象限。只有从 版本1.12开始才可以使用(0,0)

因此,如果你有旧版本,请使用axis cs:。在版本 1.12 中,我们得到以下结果:

\documentclass[border=2]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm, compat=1.12}
%\pgfplotsset{compat=1.5.1}   %% why 2 times?
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2.5, xmax=2.5,
ymin=-2.5, ymax=2.5,
xtick={-2,-1,0,1,2},
ytick={-2,-1,0,1,2},
grid=major,
]
% standard tikz syntax:
\draw[black] (0,0)
ellipse [
x radius=1, y radius=2];
\draw[red] (0,0)
ellipse [rotate=90,
x radius=1, y radius=2];
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

对于您正在加载的旧版本1.5.1,这将是

\documentclass[border=2]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm, compat=1.12}
\pgfplotsset{compat=1.5.1}   %% why 2 times?
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-2.5, xmax=2.5,
ymin=-2.5, ymax=2.5,
xtick={-2,-1,0,1,2},
ytick={-2,-1,0,1,2},
grid=major,
]
% standard tikz syntax:
\draw[black] (axis cs: 0,0)
ellipse [
x radius=1, y radius=2];
\draw[red] (axis cs: 0,0)
ellipse [rotate=90,
x radius=1, y radius=2];
\end{axis}
\end{tikzpicture}
\end{document}

顺便说一句,你不需要旋转椭圆,只需交换xy半径即可

\draw[red] (axis cs: 0,0)
ellipse [x radius=2, y radius=1];

答案2

您指定了compat两次。如果您只使用

\pgfplotsset{compat=1.12}

它运行良好。在开发过程中的某个阶段,PGFPLOTS 将轴环境中的绘制命令默认为坐标axis cs系。使用较早的compat=1.5\draw使用通用 PGF 坐标,看起来 PGF 轴是在 PGF (0,0) 处绘制的。

相关内容