如何在gnuplot中通过点文件给每个点添加颜色

3

阅读这个这个答案,我理解到可以改变每个点的颜色,但是:

  • 必须使用set palette model RGB defined ()来定义它,因此如果我想要100种不同的颜色,我必须定义所有的颜色。

  • 点的颜色是在绘制之前指定的。

我的问题是,是否有一种方法可以避免上述所有问题,例如修改我的数据文件如下:

x y z R   G   B
1 2 3 0   255 255 
5 6 2 255 0   0

并使用指定的颜色绘制相应的点?

请参阅我的回答使用十进制数生成可变颜色 - Christoph
1个回答

4

尝试在gnuplot 4.6+上执行以下操作:

rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
plot "data.dat" using 1:2:(rgb($3,$4,$5)) with points lc rgb variable

来自手册:

1.17.1.3 rgbcolor变量

变量 告诉程序读取数据文件中每行的RGB颜色信息。这需要在using说明符中增加一个相应的额外列。额外的列被解释为24位打包的RGB三元组。如果值在数据文件中直接给出,则最简便的方法是将其作为十六进制值给出(参见“rgbcolor”)。或者,using说明符可以包含一个表达式,该表达式计算为24位RGB颜色,如下面的例子所示。文本颜色也可以使用tc rgbcolor variable进行设置。


如果您能够再详细解答一个问题,我正在绘制的不是点而是线条,如果我将“points”更改为“lp”,那么线条的颜色就会与我开始的点的颜色相同,有没有办法让线条的颜色不同/一种从起点到终点都适用的颜色呢?如果您能提供相关阅读资料,那就更好了。 - Alexandru Barbarosie
很遗憾,这个问题没有直接的解决方案;每条线段都会用一种颜色绘制;渐变需要一种间接、复杂的方法。请参见 此处此处 - Fabio A. Correa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接