1

我的数据文件中有 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

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

4

1 回答 1

3

看看 gnuplot 演示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:-)
于 2012-12-18T12:51:54.830 回答