Gnuplot 不可见

Gnuplot 不可见

我正在尝试绘制两条隐式曲线(使用 pgfplots 和原始 gnuplot),但它们没有出现在文档中。在 gnuplot 中它工作得很好,所以我猜这与 pgfplots 有关,但我搞不清楚问题是什么。

例子:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot +[raw gnuplot] gnuplot {
unset key
set contour base;
set cntrparam levels discrete 0.003;
unset surface;
set view map;
set isosamples 50,50;
set xrange [0:1]
set yrange [-1:1]
f(a,c) = a*cosh(c/a)-N
ell1(a,c) = (c/z)**2+(1/(1-cosh(z)))**2*(a-N/(cosh(z)))**2-(N/cosh(z))**2  
N = 1
z = 1.19968
splot f(x,y),ell1(x,y)
};
\end{axis}
\end{tikzpicture}
\end{document}

答案1

将我的评论转化为答案

如果您注意到ur-file-name.pgf-plot.gnuplot第一次编译时创建的每条 gnuplot 命令末尾pdflatex -shell-escape ur-filename.tex都缺少一个,那么它可能无法像在终端 gnuplot 中那样工作(例如:通过命令执行命令),因为命令行终止符是;;必需的当将文件输入到 gnuplot 时,分隔 gnuplot 命令。

\documentclass[convert=false,border=2pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document} 
\begin{tikzpicture}
\begin{axis}
\addplot +[raw gnuplot] gnuplot {
unset key;
set contour base;
set cntrparam levels discrete 0.003;
unset surface;
set view map;
set isosamples 50,50;
set xrange [0:1];
set yrange [-1:1];
f(a,c) = a*cosh(c/a)-N;
ell1(a,c) = (c/z)**2+(1/(1-cosh(z)))**2*(a-N/(cosh(z)))**2-(N/cosh(z))**2;  
N = 1;
z = 1.19968;
splot f(x,y),ell1(x,y);
};
\end{axis}
\end{tikzpicture}
\end{document}

输出:

在此处输入图片描述

相关内容