我正在尝试绘制一个圆环图,其表面上画有一个半圆。以下 MWE
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[hide axis,
axis equal,
view={-37.5}{30}]
\addplot3[surf,
shader=interp,
samples=20,
domain=0:2*pi,y domain=-pi:pi,
z buffer=sort]
({(1+0.25*cos(deg(x)))*cos(deg(y))},
{(1+0.25*cos(deg(x)))*sin(deg(y))},
{0.25*sin(deg(x))});
\addplot3[color=black,
samples=20,
domain=0:pi,
line width=2.0pt]
({cos(deg(x))},
{sin(deg(x))},
{0.25});
\end{axis}
\end{tikzpicture}
\end{document}
生成
这显示了问题:半圆闭合了。我对此不是特别熟悉pgfplots
(上面的大部分内容都是我从使用 Matlab 脚本生成的示例和图表中学到的matlab2tikz
)。有没有一种简单的方法可以得到我想要的未闭合的半圆?
刚刚做了一个快速测试:以下代码
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}[hide axis,
axis equal]
\addplot[color=black,
samples=20,
domain=0:pi,
line width=2.0pt]
({cos(deg(x))},
{sin(deg(x))});
\end{axis}
\end{tikzpicture}
\end{document}
表明该问题不会发生在二维图中:
答案1
您可以使用以下方法修复此问题
\addplot3[color=black,
samples=20,
domain=0:pi,
line width=2.0pt,samples y=0]
因此该addplot3
命令只绘制曲线,而不是曲面。
更多详细信息请参阅Section 4.6.9: Parameterized plots
文档pgfplots
。