gnuplot配置日期为X轴报错:所有点Y值未定义
解决gnuplot日期X轴报错"all points y value undefined!"的问题
你的问题核心是日期格式定义和范围设置中多余的双引号,导致gnuplot无法正确解析数据中的日期列,具体错误点如下:
set timefmt的格式字符串错误添加了双引号:数据里的日期是无引号的纯文本(如2024-03-09_21-00-01),但你写了'"%Y-%m-%d_%H-%M-%S"',gnuplot会尝试匹配带引号的日期,直接导致所有日期解析失败,进而触发Y值未定义的错误。set xrange的起止值也错误添加了双引号,让gnuplot无法识别有效时间范围。set format x的输出格式不需要双引号,否则X轴标签会显示多余的引号。
以下是修正后的完整脚本:
#!/bin/bash gnuplot -persist <<-EOFMarker set xdata time set timefmt "%Y-%m-%d_%H-%M-%S" set xrange ['2024-03-10_00-00-00':'2024-03-10_06-00-00'] set format x "%Y-%m-%d" set autoscale y set pointsize 0.1 plot "./hs.txt" using 2:3 with linespoints EOFMarker # rest of script, after gnuplot exits
额外验证技巧:如果不确定日期解析是否正常,可以先运行以下命令手动验证日期列的解析结果:
plot "./hs.txt" using (timecolumn(2,"%Y-%m-%d_%H-%M-%S")):3 with linespoints
确认数据能正常绘制后,再添加set xdata time等完整配置。
内容的提问来源于stack exchange,提问作者fik236
相关产品推荐
相关产品推荐

