如何使用不同的调色板绘制两个 stdin 数据集



似乎没有办法在 gnuplot (5.0( 中定义两个不同的调色板(设置调色板 1 ...(。使用 stdin 中的三个数据集,我可以使用三种不同的颜色绘制它们,甚至一种使用调色板,另外两种使用颜色绘制它们。但是如何用不同的调色板绘制前两个?

尝试了 replot,但它令人困惑并且没有帮助

set xrange [0:10]
set yrange [0:10]
set cbrange [0:50]
set palette rgbformulae 10,13,3
plot '-' w l lc palette, '-' w l lc rgb 'green', '-' w l lc rgb 'blue'; 
1 2 10 
2 2 20 
3 2 30
4 2 40
5 2 50
e
1 4 10 
2 4 20 
3 4 30
4 4 40
5 4 50
e
1 1
2 2 
3 3 
4 4 
5 5

我希望一种方法可以让我用两个不同的帕莱特绘制两个数据集,用给定的颜色绘制第三个数据集

我找到了两个解决方案。第一种是将调色板拆分,说成正值和负值,并将它们分别用于前两行:

set palette defined (
-50 '#00aa00', -25 '#aaee00', 0 '#eeff00',
0 '#ffee00' , 25 '#cccc00', 50 '#ff0000') 
plot 
'-' u 1:2:($3) w l lw 5 lc palette,
'-' u 1:2:(-$3) w l lw 5 lc palette,
'-' w l lc rgb 'blue'; 

正如@theoz指出的,第二种解决方案是使用线条颜色的颜色函数:

r1(x) =int(255*sin(0.5*pi*x/50)) << 16
g1(x) = 0 
b1(x) = 0 
r2(x) = 0 
g2(x) = int(255*sin(0.5*pi*x/50)) << 8 
b2(x) = 0 
p1(x) = r1(x)+g1(x)+b1(x)  
p2(x) = r2(x)+g2(x)+b2(x) 
plot '-' u 1:2:(p1($3)) w l lw 4 lc rgb var,
'-' u 1:2:(p2($3)) w l lw 4 lc rgb var,
'-' w l lw 4 lc rgb 'blue'

似乎 v6 现在允许创建命名调色板,并在同一情节中使用多个调色板:)请参阅的 Gnuplot v6 命名调色板演示

最新更新