我想在带有 pgfplot 的 tikzpicture 内绘制一个 x 半径为 2、y 半径为 1 的省略号。这是我的尝试:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[ %inner axis line style={-latex},
axis x line=center,
axis y line=center,
unit vector ratio*=1 1 1,
xmin=-1.6,
xmax=3.2,
ymin=-0.5,
ymax=3.3,
xtick={-1,0,1,2,3},
ytick={1,2,3,4,5,6,7} ]
\draw[black,thick] (axis cs:1,2) ellipse [ x radius=2cm, y radius=1cm];
\draw[fill,black,thick] (axis cs:1,2) circle [ radius=0.02cm];
\draw[dotted,thin] (axis cs:1,0) -- (axis cs:1,2) -- (axis cs:0,2);
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
然而,结果并不是我想要的:查看省略号,我们可以看到半径不是 2 和 1:
看起来xtick
和ytick
轴上使用的比例与椭圆中使用的比例不同。我能以某种方式强制它们相同吗?
答案1
在 中axis
,环境正在缩放x
和y
向量以生成图,因此如果您删除cm
上的规范x radius
,y radius
您将得到所需的结果:
笔记:
- 您还需要通过至少指定版本 1.5.1
\pgfplotsset{compat=1.5.1}
。
代码:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[ %inner axis line style={-latex},
axis x line=center,
axis y line=center,
unit vector ratio*=1 1 1,
xmin=-1.6,
xmax=3.2,
ymin=-0.5,
ymax=3.3,
xtick={-1,0,1,2,3},
ytick={1,2,3,4,5,6,7} ]
\draw[blue, ultra thick] (axis cs:1,2) ellipse [x radius=2, y radius=1];
\draw[fill,red,thick] (axis cs:1,2) circle [ radius=0.02];
\draw[dotted,thin, gray] (axis cs:1,0) -- (axis cs:1,2) -- (axis cs:0,2);
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
答案2
PSTricks 解决方案:
\documentclass{article}
\usepackage{pst-plot}
\begin{document}
\begin{pspicture}(-1.5,-0.6)(3.85,3.9)
\pnode(1,2){C}
\psaxes{->}(0,0)(-1.5,-0.6)(3.5,3.5)[$x$,0][$y$,90]
\psellipse(C)(2,1)
\psdot(C)
\psline[linestyle = dotted](0,2)(C)(1,0)
\end{pspicture}
\end{document}