我有一个漂亮的 gnuplot 图形,我想在其中更改密钥中的标签。我遇到的问题与 filledcurves 选项有关。为了方便起见,我附上了图片。正如您所看到的,关键标签是 2 - 1 - 3,而我想要 1 - 2 - 3,同时保持相同的 filledcurves 模式。当然,只需更改我的绘图顺序,就会得到 1 - 2 - 3,但填充的模式也会相应地发生变化,我想避免这种情况。我试图通过使用NaN
gnuplot ( https://stackoverflow.com/questions/10614654/gnuplot-legend-order ) 中的可能性以某种方式破解它,但这里的问题是填充不同。在检查 gnuplot 文档时(http://www.bersch.net/gnuplot-doc/filledcurves.html) 我意识到没有修复模式的选项,但我想应该有一些方法。为了进行测试,我附上了 gnuplot 脚本。
#!/bin/gnuplot
#------------------------------------------------------------------------------
set grid
set key right top
set xrange [20:220]
set style line 20 lw 2 lc rgb 'black'
set border linestyle 20
set style line 1 lw 2.0 lc rgb 'dark-gray'
set style line 2 lw 2.0 lc rgb '#202020'
set style line 3 lw 2.0 lc rgb 'gray'
set style fill transparent pattern 2
#------------------------------------------------------------------------------
A=-1.74959e-14
B=-1.87199e-12
C=1.87756e-9
DeltaBDP=0.45e-9
OffsetBP=0.05e-9
DeltaBP=0.8e-9
OffsetB=0.7e-9
DeltaB=0.8e-9
#
f(x)=A*x**2+B*x+C
g(x)=f(x)+DeltaBDP
# Beta P
h(x)=f(x)+OffsetBP
i(x)=h(x)+DeltaBP
# Beta
j(x)=h(x)+OffsetB
k(x)=j(x)+DeltaB
#------------------------------------------------------------------------------
set terminal epslatex
set output 'tex/foobar.tex'
plot \
'+' using 1:(j($1)*1e9):(k($1)*1e9) with filledcurves closed lc rgb 'dark-gray' t '2' , \
'+' using 1:(f($1)*1e9):(g($1)*1e9) with filledcurves closed lc rgb 'dark-gray' t '1', \
'+' using 1:(h($1)*1e9):(i($1)*1e9) with filledcurves closed lc rgb '#202020' t '3', \
f(x)*1e9 w l ls 1 t '', \
g(x)*1e9 w l ls 1 t '', \
h(x)*1e9 w l ls 2 t '', \
i(x)*1e9 w l ls 2 t '', \
j(x)*1e9 w l ls 3 t '', \
k(x)*1e9 w l ls 3 t ''
#------------------------------------------------------------------------------
我现在无法测试,但也许此页面上的第二个答案确实有效: https ://stackoverflow.com/questions/6290504/reordering-gnuplot
如果有人遇到同样的问题,解决方案很简单(一如既往)。搜索关键字后
pattern
style
fill
,很明显如何处理它。首先,正如我已经做过的那样,@ksyrium 也提到了取消图中的标题。随后,NaN
在使用选择模式时添加地块fill pattern <int>
。这样做,NaN
可以根据需要更改图中的顺序。