gnuplot - 我的脚本 gnuplot 4.6 上的开始日期和结束日期有问题
问题描述
首先,我一定会在我的服务器上使用4.6 版本的 gnuplot。
我有这些数据:
2019-10;27.39
2019-11;27.39
2019-12;27.54
2020-01;27.13
2020-02;27.01
2020-03;26.93
2020-04;26.46
2020-05;26.63
我有这个 gnuplot 脚本:
reset
FILE = "LINEARFIT.txt"
set datafile separator ";"
set xdata time
set timefmt "%Y-%d"
set format x "%Y\n%d"
plot FILE u (StartDate=timecolumn(1)):1 index 0 every ::0:0:0
EndDate = strptime("%Y-%d","2020-12")
f(x) = a*(x-StartDate) + b
FIT_LIMIT = 1e-8
fit f(x) FILE u (timecolumn(1)):2 via a,b
set terminal png truecolor size 620,420 background rgb "#eff1f0"
set output "/xxx/xxx/xxx/data.png"
set xrange[StartDate:EndDate]
set grid xtics, ytics
set yrange[0:30]
#set xtics rotate by 90
set format y "%g"
myLabel(n) = sprintf("%g",n)
plot FILE u (timecolumn(1)):2 w lp pt 7 lc rgb "red" notitle, \
'' using 1:2:(myLabel($2)) w labels offset 0,-0.5 notitle, \
f(x) ti "linear fit with extrapolation"
如果我使用当年的数据(从 2020 年开始的数据中的所有行),此脚本运行良好:
但我想包括 2019 年的 3 行。但如果我保留所有数据( 2019+2020 ),我会得到以下结果:
如果我想通过将结束日期 2020-12 修改为 2021-01 来将此图表扩展到下一年,我会得到以下结果:
有人告诉我为什么我有这个结果?
解决方案
为了不让这个问题看起来没有答案:
您的时间格式应该是%Y-%d
(年-日),而不是%Y-%m
(年-月)。
推荐阅读
- discord.js - 读取命令启动后发送的消息
- shell - 重命名文件,如果它是目录中唯一具有扩展名的文件
- python - 当 Access 使用 python 具有“Nz”表达式时,从 MS Access 导出到 Excel
- api - 使用 Postman 进行 REST API 和 Identity Server 4 测试
- amazon-web-services - AWS Cognito SNS 未向 Sprint 发送用户电话号码验证短信
- google-sheets - 需要谷歌表格公式帮助 - 下拉列表选项链接到持续时间并总计
- flutter - 颤振 | 将放大中心页面设置为 true 时出现轮播滑块错误,
- sql-server - 使用 SQL Server 更改 XML 模板并保存到目录
- node.js - Next.js:错误 - ./node_modules/etag/index.js:22:0 未找到模块:无法解析“fs”null
- python - 以意外行为拆分字符串?