如何用gnuplot的palette为函数绘制渐变色线条?
在gnuplot中为函数线条设置渐变色的方法
你之前的问题出在lc palette z没有绑定到线条的连续变量,导致颜色固定不变。要实现线条随位置或函数值连续变色,需要明确指定z值的来源,以下是具体方案:
方案1:颜色随x轴位置渐变
通过using参数把x轴值作为z值,让线条颜色随x的变化而渐变:
reset unset key unset colorbox # 不需要右侧颜色条就保留这句,需要就删掉 set palette defined (0 "blue", 1 "red") plot sin(x) lw 3 lc palette using 1:2:1 with lines
这里using 1:2:1分别对应x、y、z三个维度,z取x的值,颜色会从x的起始到结束按你定义的palette渐变。
方案2:颜色随函数值(y值)渐变
如果想让颜色跟着sin(x)的取值变化,把z值设为函数本身的y值,同时调整颜色范围匹配函数的取值区间:
reset unset key set palette defined (0 "blue", 1 "red") set cbrange [-1:1] # 匹配sin(x)的取值范围-1到1 plot sin(x) lw 3 lc palette using 1:2:2 with lines
这样线条颜色会根据sin(x)的数值从-1(蓝色)过渡到1(红色)。
必注意的细节
- 一定要加
with lines(或简写w l),否则gnuplot会默认用加号点绘制,不会生成线条。 unset key是隐藏图例,unset colorbox是关闭右侧颜色条,两者功能不同,别搞混。- 如果用参数方程(
set parametric),要对应调整using的变量,比如:
reset unset key set parametric set palette defined (0 "blue", 1 "red") plot t, sin(t) lw 3 lc palette using 1:2:1 with lines
内容的提问来源于stack exchange,提问作者Bryan-StackExchange
相关产品推荐
相关产品推荐

