【发布时间】:2014-12-20 11:43:57
【问题描述】:
我正在尝试使用 gnuplot 的多图功能在主图上制作插图。我可以使用 term='wxt' 完全按照我想要的方式生成图,轴标签除外,轴标签需要 LaTeX 格式才能生成所需的符号。当我向 term='epslatex' 提交相同的命令时,绘图很好,但所有文本(轴和 tic 标记标签)的位置都不正确。
我认为使用 set size & origin 命令可能会混淆 epslatex 终端输出,因此我尝试使用 layout 命令并并排绘制图,以查看文本是否可以正确打印。它没有。
我正在使用 gnuplot 4.6 补丁 4 和 Linux Mint 17。
我的脚本在下面。注释部分表明原始脚本使用 set size 和 origin 命令手动将第二个图放置为插图,而不是并排放置。
set term epslatex color font ",16"
unset key
set termoption dash
set style line 1 lc rgb 'blue' lw 2 lt 1
set style line 2 lc rgb 'red' lw 2 lt 3
set style line 3 lc rgb 'green' lw 2 lt 5
set style line 4 lc rgb 'magenta' lw 2 lt 7
set style line 5 lc rgb 'black' lw 1 lt 0
set output "gr-thresholds.tex"
#set size 1,1
# set multiplot
set multiplot layout 1,2
# bigger plot
set autoscale
set ytics scale default autofreq
set xrange[0:14]
set yrange[0:1.7]
set xlabel 'r (\AA)'
set ylabel '$g(r)$'
#set size 1,1
#set origin 0,0
plot "foo1.csv" w l ls 2, \
"foo2.csv" w l ls 3 , \
"foo3.csv" w l ls 1, \
"foo4.csv" w l ls 4
#small inset
#set size 0.4, 0.4
#set origin 0.5,0.15
set xrange[1.2:2.2]
set yrange[0:0.8]
set ytics 0, 0.2, 2
set xlabel ""
set ylabel ""
plot "foo1.csv" w l ls 2, \
"foo2.csv" w l ls 3 , \
"foo3.csv" w l ls 1, \
"foo4.csv" w l ls 4
unset multiplot
set output
生成的图:
【问题讨论】:
-
您能否将脚本缩减到重现问题所需的最低限度?更改您的脚本以绘制一些简单的函数可能是个好主意,这样其他人就不需要您的数据了。
-
如果您最终要生成 PDF,为什么不使用具有此功能的终端呢?我建议使用
pdfcairo。 -
这些图形被合并到一个 LaTex 文档中,并且该文档使用 latex、bibtex、dvipdf 等进行处理。