What is the correct way to plot an implicit function using pgfplots
? Consider the following example:
\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}
This is what the function looks like in gnuplot
:
pgfplots
, however, connects function's segments, which is unexpected:
Best Answer
The development version of PGFPlots includes an
empty line
option that can be used to influence the behaviour. It is set tojump
by default, which breaks the plot when an empty line is encountered. If you're using TeXLive, you can update PGFPlots through tlmgr by temporarily using the repository http://tlcontrib.metatex.org/2010.The gap at the intersections is a numerical artefact introduced by gnuplot. It can't be fixed completely, but by plotting with a thicker line, and choosing a slightly different contour line to be plotted, it can be glossed over: