You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gnuplot从数据行读取RGB设置标签颜色失败问题排查

问题

我有一组存储在test.dat文件中的数据:

643.8 0.09417 28.9 00  24 255 0
   483.1 0.09232 28.0 01  255 0 120
   518.5 0.08943 29.6 02  11 65 255

我想要绘制一张3D图,用前三列作为x、y、z坐标,第四列作为标签内容,标签颜色采用第5、6、7列提供的RGB值。我尝试了以下gnuplot代码:

rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
splot "test.dat" u 1:2:3:4:(rgb($5/255,$6/255,$7/255)) with labels tc rgb variable notitle

但标签始终显示为黑色(X11窗口中三个标签全是黑色,不是预期的RGB颜色),请问哪里操作错了?

解决方法

问题出在rgb()函数的参数处理上:

  • gnuplot的rgb()函数要求输入0-255范围的整数,但你把数据中的RGB值除以了255,得到的是小于1的小数,经过int()处理后全部变成0,最终计算出的颜色值为0(对应黑色)。

修正后的代码如下:

rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
splot "test.dat" u 1:2:3:4:(rgb($5,$6,$7)) with labels tc rgb variable notitle

补充说明:如果你的RGB数据是0-1范围的小数,才需要先乘以255再取整,但你的数据本身就是0-255的整数,直接传入函数即可正常显示对应颜色。

内容的提问来源于stack exchange,提问作者Raphael J.F. Berger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:10:10