gnuplot中x轴为%M:%S格式时,如何在线计算数据与拟合曲线差值
在Gnuplot中直接转换分:秒时间格式计算误差曲线
核心解决方案
利用Gnuplot内置的strptime()函数,直接在plot命令的using语句中将分:秒格式的时间字符串转换为总秒数,无需提前预处理数据文件。
修改后的plot命令
# 先配置x轴的时间显示格式(保证x轴仍输出%M:%S样式) set xdata time set timefmt "%M:%S" set format x "%M:%S" # 绘制实测值与拟合值的误差曲线 plot 'data250219' using (strptime("%M:%S", $1)):($2-(k + a*exp(b*strptime("%M:%S", $1)))) with lines title "误差曲线"
关键说明
strptime("%M:%S", $1):将第一列的MM:SS格式字符串解析为总秒数(等价于分钟数*60 + 秒数),完全适配指数衰减公式的数值计算需求。- 保留
set xdata time相关配置,确保x轴依然显示原有的分:秒格式,同时后台用转换后的秒数值完成误差计算。
扩展适配
如果你的时间格式包含小时(如HH:MM:SS),只需将格式串改为"%H:%M:%S"即可:
plot 'data250219' using (strptime("%H:%M:%S", $1)):($2-(k + a*exp(b*strptime("%H:%M:%S", $1)))) with lines
内容的提问来源于stack exchange,提问作者lotek
相关产品推荐
相关产品推荐

