我在多画面环境中使用gnuplot。我想只有一个密钥箱(这不是问题),我希望在图表下放入“水平模式”。
Nice Plot1 | Nice Plot2
Nice Plot3 | Nice Plot4
the keybox
似乎密钥箱的总大小不能超过其对应图的宽度(所以这里是屏幕尺寸的一半)。这导致密钥箱中的行返回,我不想要。
无论如何都要绕过它?
感谢。
编辑:添加了脚本。 (密钥箱在3行)
set terminal epslatex color
set output 'Plot.tex'
set multiplot
set xrange [0:0.8]
set key box
set key reverse horizontal maxcols 10 samplen 0.5 spacing 1
#set key font ",9"
set key at screen 0.9,0.15
set size 0.5,0.5
set origin 0,0
set lmargin 4
set bmargin 3
set rmargin 0
set tmargin 0
set xtics nomirror
set ytics nomirror
plot x with lines lt 1 lw 4 lc rgb "red" title 'Median',\
x with lines lw 4 lc rgb "blue" title '$ F,F^{-1}$',\
x with lines lw 4 lc rgb "magenta" title '$ F,\Gamma^\mathcal{P}$',\
x with lines lw 4 lc rgb "orange" title '$\Lambda_\text{MI}$',\
x with lines lt 1 lw 4 lc rgb "green" title '$k$-NN'
#
# Plot n°2
#
set size 0.5,0.5
set origin 0,0.5
set xrange [0:0.8]
set key off
set title ''
set lmargin 4
set bmargin 3
set rmargin 0
set tmargin 0
set xtics nomirror
set ytics nomirror
plot x with lines lt 1 lw 4 lc rgb "red" title 'Median',\
x with lines lw 4 lc rgb "blue" title '$ F,F^{-1}$',\
x with lines lw 4 lc rgb "magenta" title '$ F,\Gamma^\mathcal{P}$',\
x with lines lw 4 lc rgb "orange" title '$\Lambda_\text{MI}$',\
x with lines lt 1 lw 4 lc rgb "green" title 'KNN',\
x with lines lt 1 lw 4 lc rgb "black" title 'Ground Truth'
set size 0.5,0.5
set origin 0.5,0
set xrange [0:0.8]
set key off
set title ''
set lmargin 4
set bmargin 3
set rmargin 0
set tmargin 0
set xtics nomirror
set ytics nomirror
plot x with lines lt 1 lw 4 lc rgb "red" title 'Median',\
x with lines lw 4 lc rgb "blue" title '$ F,F^{-1}$',\
x with lines lw 4 lc rgb "magenta" title '$ F,\Gamma^\mathcal{P}$',\
x with lines lw 4 lc rgb "orange" title '$\Lambda_\text{MI}$',\
x with lines lt 1 lw 4 lc rgb "green" title 'KNN',\
x with lines lt 1 lw 4 lc rgb "black" title 'Ground Truth'
set size 0.5,0.5
set origin 0.5,0.5
set xrange [0:0.8]
set key off
set title ''
set lmargin 4
set bmargin 3
set rmargin 0
set tmargin 0
set xtics nomirror
set ytics nomirror
plot x with lines lt 1 lw 4 lc rgb "red" title 'Median',\
x with lines lw 4 lc rgb "blue" title '$ F,F^{-1}$',\
x with lines lw 4 lc rgb "magenta" title '$ F,\Gamma^\mathcal{P}$',\
x with lines lw 4 lc rgb "orange" title '$\Lambda_\text{MI}$',\
x with lines lt 1 lw 4 lc rgb "green" title 'KNN',\
x with lines lt 1 lw 4 lc rgb "black" title 'Ground Truth'
答案 0 :(得分:3)
这是一个丑陋的问题。我从来没有真正使用过epslatex终端 - 这可能会导致额外的复杂情况,因为文档说明了
“当使用Tex终端...格式化信息嵌入字符串时,gnuplot只能估计字符串定位的正确宽度”
你是对的,因为gnuplot似乎不想制作一个比情节宽的键 - 太糟糕了,你不能明确地指定宽度,就像你可以用一个rectangle
。这很容易解决。诀窍是使你的情节(没有键)正常,然后制作一个最终的“空”图,它与你需要它一样大,以适应标签:
set term ...
set output ...
#Let the magic begin!
set multiplot
unset key
#<plot 1>
#...
#</plot 1>
#<plot 2>
#...
#</plot 2>
#<plot 3>
#...
#</plot 3>
#<plot 4>
#...
#</plot 4>
#<null>
#here we need to unset everything that was set previously
unset origin
unset border
unset tics
unset label
unset arrow
unset title
unset object
#Now set the size of this plot to something BIG
set size 2,2 #however big you need it
#example key settings
set key box
set key horizontal reverse samplen 1 width -4 maxrows 1 maxcols 12
set key at screen 0.5,screen 0.15 center top
#We need to set an explicit xrange. Anything will work really.
set xrange [-1:1]
set yrange [-1:1]
plot NaN w title 'title 1',\
NaN w title 'title 2',\
NaN w title 'title 3',\
NaN w title 'title 4' #etc.
#</null>
unset multiplot #<--- Necessary for some terminals, but not postscript I don't think.