gnuplot水平键

时间:2012-11-01 16:18:33

标签: gnuplot

我在多画面环境中使用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'

1 个答案:

答案 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.