我使用epslatex终端用gnuplot 4.6.4生成eps数字。
但是,我遇到了这个脚本的问题
# reset
reset
#
sz = 1.4
rx = 10.0/7.0
#
set style line 1 lt 1 pointsize 1
# blue line
set style line 2 lt 12 pointsize 1
#
set terminal epslatex size rx*sz,2*sz color standalone
set output 'output.tex'
set multiplot layout 2,2
# Figure 1,1
set tmargin 0
set bmargin 0
set lmargin at screen 0.05
set rmargin at screen 0.475
set format x ""
set xrange [30:130]
set ylabel offset 2,0 "Y label [sec]"
unset xlabel
set grid
set yrange [0:9]
set ytics ("" 0, "1" 1, "2" 2, "3" 3, "4" 4, \
"5" 5, "6" 6, "7" 7, "8" 8, "" 9)
unset key
plot "./inp" u 1:2 t "tsL" w lp ls 1, \
"" u 1:3 t "vL" w lp ls 2
#
# Figure 1,2
set bmargin 0
set tmargin 0
set lmargin at screen 0.525
set rmargin at screen 0.95
set format x ""
set format y ""
set xrange [30:130]
set yrange [0:9]
#set mytics 2
unset ylabel
unset xlabel
set grid
plot "./inp" u 1:2 t "tsL" w lp ls 1, \
"" u 1:3 t "vL" w lp ls 2
# Figure 2,1
set tmargin 0
set bmargin 0
set lmargin at screen 0.05
set rmargin at screen 0.475
set format x "%g"
set format y "%g"
set xrange [30:130]
set ylabel offset 2,0 "Ylabel"
set xlabel offset 0,0.6 "neig"
set grid
set yrange [0:9]
set ytics ("" 0, "1" 1, "2" 2, "3" 3, "4" 4, \
"5" 5, "6" 6, "7" 7, "8" 8, "" 9)
unset key
set xtics ("40" 40, "" 60 , "80" 80,\
"" 100, "120" 120)
set mxtics 2
plot "./inp" u 1:2 t "tsL" w lp ls 1, \
"" u 1:3 t "vL" w lp ls 2
#
# Figure 2,2
set bmargin 0
set tmargin 0
set lmargin at screen 0.525
set rmargin at screen 0.95
set format y ""
set format x "%g"
set xrange [30:130]
set yrange [0:9]
#set ylabel "Ylabel"
unset ylabel
set xlabel offset 0,0.6 "neig"
set grid
set xtics ("40" 40, "" 60 , "80" 80,\
"" 100, "120" 120)
set mxtics 2
plot "./inp" u 1:2 t "tsL" w lp ls 1, \
"" u 1:3 t "vL" w lp ls 2
#
unset multiplot
#
set output
输入文件inp包含
40 1 3
60 2 4
80 3 5
100 4 6
120 5 7
如果我编译文档,一切都很顺利。但是,dvi文件中缺少一行,标签似乎位于错误的位置。之后,如果我执行“dvips output.dvi”,我得到一个完全错误的ps输出,没有任何标签和ytics在错误的位置。这个实现的错误是什么?
答案 0 :(得分:3)
dvi输出通常是错误的,尤其是标签,因为这些是使用Postscript操作排版的,许多dvi查看器无法正确解释这些操作。
关于标签,左边距太小,因此标签位于图像之外。对于你的例子我必须使用
set lmargin at screen 0.2
set ylabel offset 0.5,0 "Y label [sec]"
对于图1,1,为了获得合理的边距并查看所有标签(ytic标签和ylabel)。 y ys还可以。
以同样的方式,你必须修复其他子图的lmargin
和rmargin
的其他设置,以及底行的bmargin
以查看xlabel和xtic标签。
您无需手动设置ytics。使用
set ytics 1,1,8 # tics from 1 to 8 in steps of 1
set xtics 40 # distance of 40 between tics.
关于边距,绘图区域和画布大小的一些评论。
size
终端选项(例如set terminal pngcairo size 800,400
)给出。xlabel
,ylabel
等的存在和位置,title
,key
在外,colorbox
,抽签标签的长度等等。set size
和set origin
相对于自动确定的绘图区域进行更改(对于splot
,可以使用set view
进行缩放。set lmargin
,set rmargin
,set bmargin
和set tmargin
单独指定边距。它们的值可以通过两种方式指定:
set tmargin 1
留下相当于一个字符高度的上边距。set tmargin at screen 0.95
留下了总画布尺寸的5%的上边距。