通过 gnuplot 创建图表然后将其放入 LaTeX

通过 gnuplot 创建图表然后将其放入 LaTeX

说实话,我不知所措。我确实尝试过将 gnuplot 和 LaTeX 一起使用,但似乎没有任何理想的结果。我有 gnuplot 代码;

reset

set lmargin at screen 0.2;
set rmargin at screen 0.977;
set tmargin at screen 0.96;
set bmargin at screen 0.13;

# Define colour range to be consistent amongst plots
set cbrange [lowcol:highcol];


set terminal latex
set out 'psi.tex'
set termoption dash

#set title istitle;
set xlabel '$x/a$';
set ylabel '$y/a$' offset 1.7;
set contour;
set view map;
unset surface;
set cntrparam levels 8;
set isosamples 50;
unset key
unset colorbox
splot 'loop_bottom.txt' w l notitle,'loop_top.txt' w l notitle

和最小包

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\input{psi.tex}
\end{document}

我得到了类似的东西

在此处输入图片描述

这还算可以。但线条非常粗糙,我还需要一半大小的 x 轴,而“设置大小 0.5,1”似乎不起作用。不幸的是,我无法将包含数据点的文本文件放在这里,但有没有更好的(并且容易理解的,这个项目的截止日期很快就要到了)方法,能够在 LaTeX 中绘制数据点的单色轮廓图,就像图中那样?

答案1

终端选项latex似乎将大量单独的绘图点写入文件psi.tex,而忽略它们之间的(数学)联系,或者更短,结果不是矢量图形格式。这会导致图片粗糙,尤其是缩放时。isosamples如果与更好的增加结合使用,增加将提供更好的图形文件samples,但如果绘制的是数据文件而不是函数,则这不是一个选项。

我的“解决方案”使用了一个函数,因为我无法使用 gnuplot 脚本中的文件。

我建议使用postscriptpdf终端。

reset

set lmargin at screen 0.2;
set rmargin at screen 0.977;
set tmargin at screen 0.96;
set bmargin at screen 0.13;

# Define colour range to be consistent amongst plots
# set cbrange [lowcol:highcol];



#set title istitle;
set xlabel '$x/a$';
set ylabel '$y/a$' offset 1.7;
set contour;
set view map;
unset surface;
set cntrparam levels 8;
set isosamples 200;
unset key
unset colorbox
splot sin(x*y)   
# Commented out since data file `loop_*.txt' not available
#splot 'loop_bottom.txt' w l notitle,'loop_top.txt' w l notitle

set terminal push

set terminal latex 
set out 'psi.tex'
set termoption dash
replot
set out

set terminal postscript enhanced colour
set output 'psi.eps'
replot
set out

set terminal pdf colour
set output 'psi.pdf'
replot
set out

set terminal pop

以下是LaTeX代码

\documentclass{article}
\usepackage{graphicx}
% Perhaps necessary, depending on plot symbols
\usepackage{latexsym}
\begin{document}

\input{psi}

\includegraphics[scale=0.5,angle=-90]{psi.eps}

\includegraphics{psi.pdf}


\end{document}

Gnuplot latex 终端输出

在此处输入图片描述

Gnuplot postscript 终端输出

在此处输入图片描述

答案2

终端epslatex很多比 更好latex,而且你仍然可以保持与主文档字体的一致性,而使用其他终端(如pdf或 )时则会失去postscript这一点。老实说,我想不出任何理由使用latex而不是epslatex

例如,使用此代码

reset
set terminal epslatex
set output 'foo.tex'

set xlabel '$x/a$'
set ylabel '$y/a$' offset -1,0
set contour
set view map
unset surface
set cntrparam levels 31
set isosamples 200
unset key
unset colorbox

splot x**2-y**2
set output

你可以得到下面的图片

在此处输入图片描述

如果要设置轴之间的比率,请使用选项size ratio。例如,使用

set size ratio 2

y 轴是 x 轴的两倍。如果希望绘图的整个“x”尺寸减半,请在terminal选项中设置整个图形的尺寸,记住默认尺寸为 5×3.5 英寸²。例如,以下代码将图片的尺寸设置为 2.5×3.5 英寸²

set terminal epslatex size 2.5,3.5

相关内容