使用 绘制隐函数的正确方法是什么pgfplots
?请考虑以下示例:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=none] function[raw gnuplot] {
set contour base;
set cntrparam levels discrete 0.0;
unset surface;
set view map;
set isosamples 500;
splot exp(x)*cos(y)-1-x;
};
\end{axis}
\end{tikzpicture}
\end{document}
该函数如下所示gnuplot
:
pgfplots
然而,连接了函数的段,这是出乎意料的:
答案1
PGFPlots 的开发版本包含一个empty line
可用于影响行为的选项。它设置为jump
,当遇到空行时会中断绘图。如果您使用的是 TeXLive,您可以通过 tlmgr 临时使用存储库来更新 PGFPlotshttp://tlcontrib.metatex.org/2010。
交叉点处的间隙是 gnuplot 引入的数值伪影。它无法完全修复,但通过用较粗的线绘图,并选择稍微不同的轮廓线来绘制,可以掩盖它:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot +[no markers,
raw gnuplot,
thick,
empty line = jump % not strictly necessary, as this is the default behaviour in the development version of PGFPlots
] gnuplot {
set contour base;
set cntrparam levels discrete 0.003;
unset surface;
set view map;
set isosamples 500;
splot exp(x)*cos(y)-1-x;
};
\end{axis}
\end{tikzpicture}
\end{document}