我们如何在 LaTeX 中导入 gnuplot 输出?

我们如何在 LaTeX 中导入 gnuplot 输出?

我正在使用gnuplot并创建myploy.tex如下:

set terminal epslatex   
set output 'mplot.tex'   
set xlabel "Avg. No. of demand duration (slot) "   
set ylabel "Acceptence rate (%)"   
set grid xtics ytics   
set key right bottom   

set style line 1 lw 1 lc 3 pt 7  
set style line 2 lw 1 lc 1 pt 5  
set style line 3 lw 1 lc 0 pt 9  
set style line 4 lw 1 lc 4 pt 3  

plot "AcceptanceRate_Ser.txt" using 2:4:5:6 title "NoMig" with errorlines linestyle 1,\ 
     "AcceptanceRate_Ser.txt" using 2:7:8:9 title "FlowMig" with errorlines linestyle 2 ,\ 
      "AcceptanceRate_Ser.txt" using 2:10:11:12 title "VMMig" with errorlines linestyle 3, \ 
     "AcceptanceRate_Ser.txt" using 2:13:14:15 title "NoRis" with errorlines linestyle 4                     

最后,我有myplot.texmyplot.eps

我需要将它们导入 LaTeX 文件中,如图所示,我执行以下操作:

\begin{figure}[!]  
\begin{center}  
\input{myplot.tex}  
\caption{Graph caption}  
\label{graph:graph1}  
\end{center}    
\end{figure}   

并使用以下包:

\usepackage{graphicx}  
\usepackage{txfonts}  
\usepackage{epstopdf}

但我不能。

答案1

gnuplot以下是允许我们直接在文件内部使用的方法.tex

使用gnuplottex

%% compile with 'pdflatex --shell-escape myfile.tex'
\documentclass{standalone}
\usepackage[miktex]{gnuplottex}  %% I am using miktex
\begin{document}
\begin{gnuplot}[terminal=pdf,terminaloptions=color]
    unset key
    set samples 10000
    set format '%g'
    set xlabel "Avg. No. of demand duration (slot) "
    set ylabel "Acceptence rate (%)"
    set xrange [-6:6]
    set yrange [0:0.41]
    f(n,x) = gamma(.5*(n+1))/(sqrt(n*pi)*gamma(.5*n))*((1+x**2/n)**(-.5*(n+1)))
    plot for[i=1:20] f(i,x)
\end{gnuplot}
%
\end{document}

使用pgfplots (来自手册的代码):

%% compile with 'pdflatex --shell-escape myfile.tex'
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot gnuplot {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}

两者都需要选项编译--shell-escape后才能pdflatex直接使用。

答案2

由于您没有包含产生的输出和错误,因此很难确定到底出了什么问题。

\usepackage{colors}然而,您的问题可能是您在序言中没有提到这一点 。

编辑:再看看,也可能是你.tex在使用\input-command 时添加了。我相信

\input{myplot.tex}

本来应该

\input{myplot}

编辑结束。

要尝试比寻求的解决方案更简单一点的方法,您可以尝试让 gnuplot 输出一个可以自行编译的 tex 文档。以下代码可以实现这一点。

set terminal epslatex size 9cm,7cm standalone
set output 'test.tex'

unset key
plot x**2;

然后运行latex test.texdvipdf test.dvi,你会得到如下所示的 pdf: 十**二

查看生成的test.tex文件,你会看到它包含 LaTeX 包图形颜色几何学。我会开始确保这些内容也包含在我的主文档中。

为了查看是否可以使用 gnuplot 生成的图表,我创建了一个comp_test.tex包含以下内容的新 tex 文件:

\documentclass{article}
\usepackage{geometry}
\usepackage{color}
\usepackage{graphicx}

\begin{document}
\begin{figure}
  \begin{center}
    \include{test}
  \end{center}
  \caption{A caption}
\end{figure}
\end{document}

并且我确保删除了 gnuplot 文件中的以下部分standalone

set terminal epslatex 
set output 'test.tex'

unset key
plot x**2;

现在运行gnuplot test.gnu,,latex comp_test.texdvipdf comp_test.dvi得到一个如下所示的 pdf: x**2 图包含在 Latex 中

如果你想了解更多关于 gnuplot 的信息,我强烈建议你访问 http://gnuplotting.org。我是通过这篇文章了解 LaTeX 终端的http://www.gnuplotting.org/tag/epslatex/

祝你好运。

相关内容