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

Gnuplot:根据X值为函数绘图着色的实现方法

在Gnuplot中根据X值为函数(非数据文件)按自定义调色板着色

刚好我之前也折腾过类似的需求,用gnuplot实现这个其实很简单,核心是利用plot命令里的调色板映射功能,把X值当作颜色的依据就行。下面一步步给你讲清楚:

1. 确认自定义调色板

你已经定义的这个调色板完全没问题,它把0-5的数值直接对应到指定颜色,刚好匹配你的X区间:

set palette defined ( 0 'purple', 1 'blue', 2 'green', 3 'yellow', 4 'orange', 5 'red' )

2. 核心绘图命令

要让函数的颜色随X值变化,关键是告诉gnuplot用X值来映射调色板。因为gnuplot默认用z轴值来关联调色板,所以我们只需要在绘图时指定z=x即可。

比如绘制sin(x)的完整命令:

# 可选:开启颜色条,方便查看颜色对应的值
set colorbox
# 绘图区间限定在[0:5],用线条绘制,加粗线条,用X值映射调色板
plot [0:5] sin(x) with lines lw 3 palette z=x title "sin(x) colored by X value"

3. 调整颜色过渡效果

  • 如果想要离散的颜色块(每个X整数区间对应一种颜色),可以添加以下设置,确保gnuplot只使用你定义的6种颜色,不会插值出中间色:
    set cbrange [0:5]
    set palette maxcolors 6
    
  • 如果想要平滑的颜色渐变,直接去掉上面两行就行,gnuplot会自动在你定义的颜色之间生成过渡色。

4. 扩展:用点绘图的情况

如果想用点而不是线条展示,只需要把with lines改成with points,再调整点的样式和大小:

plot [0:5] sin(x) with points pt 7 ps 2 palette z=x title "sin(x) points colored by X value"

你可以根据自己的需求调整线条宽度、点样式这些参数,运行后就能看到sin(x)曲线从紫色到红色随X值渐变的效果啦~

内容的提问来源于stack exchange,提问作者pelegs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:38:49