GNUPLOT:使用linespoints时如何为线条和点设置不同颜色?
解决Linespoints绘图中线条与点颜色分离的问题
我来帮你搞定这个绘图需求!其实你要的效果完全不用绕弯路——gnuplot里早就有专门控制数据点颜色的参数,只是你之前没注意到而已~
直接用Linespoints类型实现(推荐)
你可以在linespoints绘图命令里,分别用两个参数独立控制线条和点的颜色:
- 用
linecolor(或缩写lc)指定线条为黑色 - 用
pointcolor(或缩写pc)单独设置数据点的彩色
示例1:固定彩色点
如果所有点都用同一种彩色,比如橙红色,代码可以这么写:
# 先定义一个可复用的样式 set style line 1 lc rgb "black" pc rgb "#ff4500" pt 7 # pt控制点的形状,7是实心圆形 plot 'your_data_file.txt' with linespoints ls 1
示例2:动态彩色点(按数据列赋值)
如果想让每个点根据数据中的某一列值显示不同颜色,比如数据第三列是颜色索引/RGB值,可以用pc variable:
plot 'your_data_file.txt' using 1:2:3 with linespoints lc rgb "black" pc variable pt 7
你的变通方法也可行
当然你想到的「先画黑色线条再叠加点」的思路是完全没问题的,适合一些需要更精细控制的场景,代码示例:
plot 'your_data_file.txt' with lines lc rgb "black", \ '' using 1:2 with points pc rgb "#ff4500" pt 7
这种方法本质是两次绘图叠加,效果和直接用linespoints+pc一致,但前者代码更简洁高效。
内容的提问来源于stack exchange,提问作者Sebastian Roe
相关产品推荐
相关产品推荐

