Gnuplot设置X轴范围从两天前开始失效问题排查
问题原因与解决方法
核心错误
你混淆了gnuplot中system()函数和反引号的用法:
system()仅返回系统命令的退出状态码(整数,成功为0),不是命令的输出内容,直接放在xrange里会被当成错误的时间值解析。- 同时你的日期格式和gnuplot的
timefmt不匹配,导致解析出0021这种错误年份(把日期的日部分当成了年份)。
修复步骤
设置匹配的时间格式
先指定和date命令输出完全一致的时间格式:set xdata time set timefmt "%d-%m-%Y %H:%M:%S"用反引号捕获命令输出
替换system()为反引号()来获取date命令的输出字符串,可选加trim()`去掉多余换行:set xrange [trim(`date -d 'now-2days' '+%d-%m-%Y %H:%M:%S'`):]
验证
执行show xrange后,应该会显示正确的两天前日期,而非0021-06-21这类异常值。
内容的提问来源于stack exchange,提问作者Sergei
相关产品推荐
相关产品推荐

