如何用GnuPlot为同数据集点间连线按时间戳设置渐变颜色?
GnuPlot实现按时间戳为点间连线着色的方案
完全可以实现,以下是具体的实现思路和代码示例:
核心思路
- 创建从红色到蓝色的离散调色板,对应颜色编号1到
SAMPLE_COUNT - 循环绘制每一段相邻点的连线,为每条线段分配对应编号的颜色
- 可选:为每个点也分配对应时间戳的颜色
完整GnuPlot脚本
# 替换为你的线段总数(即点数量-1) SAMPLE_COUNT = 50 set autoscale # 定义从红色到蓝色的离散调色板,编号1到SAMPLE_COUNT set palette defined (1 'red', SAMPLE_COUNT 'blue') set palette maxcolors SAMPLE_COUNT # 绘制带颜色的线段:每条线段对应一个颜色编号 plot for [i=0:SAMPLE_COUNT-1] "$file" every ::i::i+1 with lines lc palette frac (i+1.0)/SAMPLE_COUNT, \ # 绘制点:点的颜色随时间戳从红到蓝渐变 "$file" with points pt 7 lc palette frac ($0+1.0)/(SAMPLE_COUNT+1)
代码说明
set palette defined:手动指定调色板的起始(红色)和结束(蓝色)颜色,生成SAMPLE_COUNT个离散颜色等级for [i=0:SAMPLE_COUNT-1]:遍历所有线段,every ::i::i+1表示仅取数据文件中第i行和第i+1行的点,组成单条线段lc palette frac (i+1.0)/SAMPLE_COUNT:将第i条线段对应到调色板中第i+1个颜色(通过比例值映射到调色板范围)- 点的颜色通过
$0(行号,从0开始)计算比例,实现从第一个点到最后一个点的颜色渐变
内容的提问来源于stack exchange,提问作者ceremcem
相关产品推荐
相关产品推荐

