在gnuplot中如何设置3列的rgb颜色?

时间:2012-12-18 07:12:42

标签: colors gnuplot

我的数据文件中有3个'列',用于指定红色,绿色和蓝色部分:

red     green   blue
0.263   0.914   0.086
0.263   0.914   0.086
0.263   0.914   0.086
1.000   0.571   0.429
1.000   0.571   0.429

如何使用这些来绘制由这些值绘制的其他列? 显然,以下方法仅适用于带有splot的3D绘图:

rgb(r,g,b)=<some function code>
plot './data.csv' u 1:2:(rgb($8,$9,$10)) w l rgb variable

我看不出如何使用这些值为绘图着色。

1 个答案:

答案 0 :(得分:3)

看一下gnuplot demo rgb_variable.dem。相应的数据文件如下所示:

0   0   0   0x000000
255 0   0   0xff0000
255 255 0   0xffff00
255 255 255 0xffffff
0   255 255 0x00ffff
255 0   255 0xff00ff
0   255 0   0x00ff00
#<snip> 
#...
#</snip>

请注意,在最后一个示例之前不会使用第4列 - 即这是几乎你拥有的内容。你将有一个额外的变换来将你的颜色从[0-1]范围变为范围[0-255],但这很容易(仅乘以255):

scale(x)=x*255
rgb(r,g,b) = int(scale(r))*65536 + int(scale(g))*256 + int(scale(b))
plot './data.csv' u 1:2:(rgb($8,$9,$10)) with lines linecolor rgb variable
#                                                   ^^^^^^^^^ don't forget this:-)