Gnuplot linecolor由调色板,但关键不是

时间:2014-09-11 13:42:01

标签: gnuplot

假设我有以下gnuplot脚本。

set terminal epslatex standalone size 8cm, 4cm
set output "test.tex"
set palette defined ( 0 "black", 1 "red" )

plot \
    "a.dat" using 1:2:3 linecolor palette z pointtype 9 title "a" , \
    "b.dat" using 1:2:3 linecolor palette z pointtype 5 title "b" , \
    "c.dat" using 1:2:3 linecolor palette z pointtype 7 title "c" 

以下示例数据集

a.dat

0 0 0
1 0 1
2 0 2
3 0 3
4 0 4

b.dat

0 1 0
1 1 1
2 1 2
3 1 3

c.dat

0 2 0
1 2 1
2 2 2

这给了我以下

Sample picture

我对这个例子的问题是图例中的键都获得了相应输入文件的最后一个数据点的颜色。基本上,我希望键中的所有符号都具有相同的颜色。我怎样才能做到这一点?

我正在使用gnuplot 4.6.2(和4.6.5)。我正在寻找一个通用的解决方案。即,我并不是在寻找一个我必须改变数据文件的解决方案(因为它会定期更新)。

1 个答案:

答案 0 :(得分:1)

我想到的最佳选择是为每个标题使用单独的绘图表达式,您可以在其中指定键中实际需要的颜色:

set terminal epslatex standalone size 8cm, 4cm
set output "test.tex"
set palette defined ( 0 "black", 1 "red" )

set key samplen 1
set offset 0.1,0.1,0.1,0.1

plot \
    "a.dat" using 1:2:3 palette pt 9 notitle, "" using 1:(NaN) lc rgb 'black' pt 9 title 'a', \
    "b.dat" using 1:2:3 palette pt 5 notitle, "" using 1:(NaN) lc rgb 'black' pt 5 title 'b', \
    "c.dat" using 1:2:3 palette pt 7 notitle, "" using 1:(NaN) lc rgb 'black' pt 7 title 'c'

set output 
system('latex test && dvips test && ps2pdf test.ps')

enter image description here

或者您也可以使用point选项手动设置三个标签,但这可能需要更多的摆弄以使位置和对齐正确。