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

gnuplot绘制折线图时如何用红色线条标记零值数据

问题描述

现有一个存储0~500范围数值的.csv数据文件,数据示例如下:

25.2
2.82
2.05
2.13
2.42
2.17
2.00
0
0
0
0
3.33
3.41
3.26
3.30
0
27.8

当前使用如下gnuplot命令绘制折线图:

plot 'out.csv' using 1 with lines

需求:将文件中所有数值为0的位置在图表上用单独的红色线条标记。

实现方案

直接在同一张图上叠加零值专属的绘制层即可,gnuplot遇到无效值NaN时会自动断开连线,正好可以用来过滤非零值,只渲染零值段的红色线条。
完整绘图命令如下:

plot 'out.csv' using 1 with lines title '原始数据折线', \
     '' using ($1 == 0 ? $1 : NaN) with lines lc rgb 'red' lw 2 title '零值标记'
  • 参数说明:
    • 第一行命令和原有绘图逻辑完全一致,负责渲染正常的数值折线
    • 第二行命令复用同一个数据文件,通过三元判断过滤数据:当前行数值为0时保留数值,非0时返回无效值NaN,所有零值段会单独以红色、2倍线宽渲染,和原有折线形成清晰区分
    • 如果需要调整标记醒目程度,可修改lw(即linewidth)后的数值调整线宽;如果需要用点而非线条标记零值,可将with lines替换为with points pt 7 ps 1.5,用红色实心圆点标记每个零值点位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:57:14