在gnuplot中使用框时的颜色重复

时间:2015-04-14 17:35:43

标签: gnuplot

我的数据文件只有两列。这些列上的以下MWE会生成重复颜色的框。是否可以为每个盒子生产独特的颜色?

reset
set term postscript eps size 5.5,4.5 enhanced color solid lw 2\
font "arial,28"
set key right
set xtics rotate -45 font ",20"
set style fill solid 1 border -1
plot 'rankdefcount.dat' using ($0):2:($0):xticlabels(1) \
                                          notitle w boxes lc variable 
quit

这是我得到的输出:

Output

2 个答案:

答案 0 :(得分:2)

经过SO专家的几次尝试和帮助,我提出了以下解决方案;但是,没有一个是完美的。

解决方案1 ​​ :(使用 rand和rgb调用随机重复

reset
set term postscript eps size 5.5,4.5 enhanced color solid lw 2 font \
"arial,28"
set key right
rgb(r,g,b)=int(255*r)*65536+int(255*g)*256+int(255*b)
do for [i=1:31] {
   myrand=rand(int(rand(0)*i*100)+i*100)
   set style line i linecolor rgb rgb(rand(0),rand(0),rand(0))
}
set xtics rotate -45 font ",20"
set style fill solid 1 border -1
plot 'rankdefcount.dat' using ($0):2:($0):xticlabels(1) \
                                          notitle w boxes lc variable 
quit

以下是相应的输出:

rgb output

使用调色板定义(解决方案2):

reset
set term postscript eps size 5.5,4.5 enhanced color solid lw 2 font \
"arial,28"
set key right
set palette color model HSV
set palette defined (0 0 1 1,1 1 1 1)
set palette defined ( 0 0 1 0, 1 0 1 1, 6 0.8333 1 1, 7 0.8333 0 1)
set boxwidth 0.5
unset colorbox
set xtics rotate -45 font ",20"
set style fill solid 1 border -1
plot 'rankdefcount.dat' using ($0):2:($0):xticlabels(1) \
                                          notitle w boxes lc palette 
quit

这是输出:

pal-redstart

对于另一个解决方案(解决方案3 ),请使用以下行替换上面的定义:

set palette color model HSV
set pm3d explicit at b
set palette rgbformulae 3, 2, 2

这就是我得到的:

pal-yellow

答案 1 :(得分:1)

您可以尝试重新定义与要显示的框一样多的线型。代码应该在图之前。

colors="black red orange #fa8072 ...." #[as much colors as needed] 
do for [L=1:words(colors)]{
set linetype L lc rgb word(colors,L)  
}

你可以在这里找到gnuplot的颜色。

http://www.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/colors.htm