我想在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 页)
但相反,我得到的是这样的:
你能指出我的错误吗?
答案1
您最后使用了compat
两次。因此,这优先于。在旧版本中,绘图坐标应被提及为\pgfplotsset{compat=1.5.1}
compat=1.12
pgfplots
\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}
顺便说一句,你不需要旋转椭圆,只需交换x
和y
半径即可
\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) 处绘制的。