gnuplot:有选择地将某些键放在顶部
gnuplot: selectively put certain keys to the top
我正在尝试使用gnuplot
画图。由于篇幅有限space,图画成这样:
我正在考虑将前三个标签(ins-replace
、bb-split
和 func-reorder
移到图的顶部,外面!)
所以它应该是这样的:
set key outside
但基本上如何 select 前三个键 并将它们移到外面?可以这样做吗?
我把脚本放在这里:
set term pdf size 10,8 font "Arial,44"
set output "plot/bzip-ropbase-mix.pdf"
set size ratio 0.6
#set multiplot layout 1,1
set datafile separator ","
set offset 0, 0, 0, 0
set xtics norangelimit
set ytics nomirror
set termoption dashed
set ylabel "Gagdet Elimination Rate (%)"
set xlabel "Iteration"
set key bottom right
set yrange [0:110]
set style data linespoints
set key vertical maxrows 5
plot 'plot/bzip-ropbase-data.csv' using 11:xtic((int([=11=])%4)==0? sprintf("%d", [=11=]*50):"") title columnheader(11) pt 4 lw 1, \
'' using 12 title columnheader(12) pt 5 lw 4 ps .8 lc rgb "#4169E1", \
'' using 13 title columnheader(13) pt 6 lw 4 ps .8 lc rgb "#DAA520", \
'' using 14 title columnheader(14) pt 7 lw 4 ps .8 lc rgb "#FF7F50", \
'' using 15 title columnheader(15) pt 8 lw 4 ps .8 lc 7
谁能帮帮我?谢谢!
您无法自动执行此操作,但有一些方法可以解决。第一个想到的是使用 multiplot,然后首先绘制您想要在外部绘制其标题的所有函数和文件,然后绘制所有您想要在内部绘制的函数和文件。您需要在第一个实例中禁用绘图边框等,然后在第二个实例中启用它。为了确保您的绘图区域在两个 plot
实例中保持不变,您需要硬设置边距:
set multiplot
set xrange [0:2.*pi]
# Set the margins
set lmargin at screen 0.1; set rmargin at screen 0.98
set tmargin at screen 0.8; set bmargin at screen 0.1
# Disable drawing borders and tics
unset border; unset tics
# Set position of the legend
set key tmargin
# Draw the first batch of stuff
plot cos(x) lc 1
# Enable drawing borders and tics
set border; set tics
# Set position of the legend
set key inside
# Draw the second batch of stuff
plot sin(x) lc 2
我正在尝试使用gnuplot
画图。由于篇幅有限space,图画成这样:
我正在考虑将前三个标签(ins-replace
、bb-split
和 func-reorder
移到图的顶部,外面!)
所以它应该是这样的:
set key outside
但基本上如何 select 前三个键 并将它们移到外面?可以这样做吗?
我把脚本放在这里:
set term pdf size 10,8 font "Arial,44"
set output "plot/bzip-ropbase-mix.pdf"
set size ratio 0.6
#set multiplot layout 1,1
set datafile separator ","
set offset 0, 0, 0, 0
set xtics norangelimit
set ytics nomirror
set termoption dashed
set ylabel "Gagdet Elimination Rate (%)"
set xlabel "Iteration"
set key bottom right
set yrange [0:110]
set style data linespoints
set key vertical maxrows 5
plot 'plot/bzip-ropbase-data.csv' using 11:xtic((int([=11=])%4)==0? sprintf("%d", [=11=]*50):"") title columnheader(11) pt 4 lw 1, \
'' using 12 title columnheader(12) pt 5 lw 4 ps .8 lc rgb "#4169E1", \
'' using 13 title columnheader(13) pt 6 lw 4 ps .8 lc rgb "#DAA520", \
'' using 14 title columnheader(14) pt 7 lw 4 ps .8 lc rgb "#FF7F50", \
'' using 15 title columnheader(15) pt 8 lw 4 ps .8 lc 7
谁能帮帮我?谢谢!
您无法自动执行此操作,但有一些方法可以解决。第一个想到的是使用 multiplot,然后首先绘制您想要在外部绘制其标题的所有函数和文件,然后绘制所有您想要在内部绘制的函数和文件。您需要在第一个实例中禁用绘图边框等,然后在第二个实例中启用它。为了确保您的绘图区域在两个 plot
实例中保持不变,您需要硬设置边距:
set multiplot
set xrange [0:2.*pi]
# Set the margins
set lmargin at screen 0.1; set rmargin at screen 0.98
set tmargin at screen 0.8; set bmargin at screen 0.1
# Disable drawing borders and tics
unset border; unset tics
# Set position of the legend
set key tmargin
# Draw the first batch of stuff
plot cos(x) lc 1
# Enable drawing borders and tics
set border; set tics
# Set position of the legend
set key inside
# Draw the second batch of stuff
plot sin(x) lc 2