如何在gnuplot中正确绘制带天数+小时格式的时间序列数据?
gnuplot带天数标识时间数据解析失败解决方案
错误原因
- 未指定CSV文件的逗号分隔符,gnuplot默认按空白字符拆分字段,无法正确读取第二列时间数据
set timefmt格式未匹配时间字符串中的d字面字符,解析时匹配到d就会提前终止,后续小时、分钟参数完全无法识别- 未显式声明x轴为时间类型,也未配置x轴时间显示格式,会导致最终渲染异常
修正后完整配置代码
# 声明x轴为时间类型 set xdata time # 设置数据分隔符为逗号,适配CSV格式 set datafile separator comma # 时间格式匹配规则:%d匹配天数字面量,后跟固定字符d、空格,再匹配%H:%M格式的时分 set timefmt "%dd %H:%M" # 配置x轴显示的时间格式,可按需调整 set format x "%dd %H:%M" # 绘图指定使用第二列作为x轴(时间)、第一列作为y轴,按需求选择绘图样式 plot "test.csv" using 2:1 with linespoints
效果说明
上述配置可正确识别1d 10:15这类带天数标识的时间格式,跨天数据会按照时间顺序自动排布,不会出现时间轴错位、数值解析错误的问题。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

