You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gnuplot:CSV文件日期X轴加密货币数据绘图问题

解决Gnuplot时间轴格式与缩放问题

你的问题出在两个关键地方:时间格式解析错误和错误使用行号作为X轴数据,导致刻度格式不对、X轴无法按实际时间缩放。下面是修正后的完整脚本,以及详细的解释:

修正后的Gnuplot脚本

set key inside bottom right
set title 'Revenues'
set datafile separator ','
set ylabel 'EUR'
set grid

# 配置时间轴核心设置
set xdata time
# 严格匹配CSV中的日期时间格式(注意时间部分是冒号分隔!)
set timefmt '%Y-%m-%d %H:%M:%S'
# 设置X轴标签为你要的短格式:两位数年份/日/月(例如18/20/01)
set format x "%y/%d/%m"
# 旋转刻度标签避免重叠
set xtics rotate

# 绘图时用第一列(日期)作为X轴,第2-5列作为Y轴
plot for [col=2:5] "data.txt" using 1:col with lines lw 2 title columnheader

关键修正点说明

  1. 时间格式匹配
    你之前的set timefmt '%Y-%m-%d %H-%M-%S'是错误的——CSV里的时间部分是HH:MM:SS(冒号分隔),不是减号,Gnuplot无法正确解析时间字符串,自然显示不出正确的格式。修正后%H:%M:%S才能匹配数据中的时间格式。

  2. 使用实际时间作为X轴
    你之前用using 0:col,这里的0是Gnuplot默认的行号,不是时间数据!哪怕你把最后一条数据改成2019年,行号还是按顺序递增,X轴只会按行数缩放,完全忽略时间跨度。改成using 1:col后,Gnuplot会读取第一列的时间值,自动根据时间间隔缩放X轴,2019年的数据会自然显示在右侧对应的位置。

  3. 去掉多余的:xtic(1)
    启用set xdata time后,Gnuplot会自动根据时间间隔生成合理的刻度标签,手动指定:xtic(1)会强制每个数据点都显示标签,不仅容易重叠,还会干扰自动缩放逻辑,所以不需要加这个参数。

额外优化(可选)

如果想要更精准控制X轴刻度的间隔,比如每隔1天显示一个标签,可以添加:

# 设置X轴每隔86400秒(1天)显示一个刻度
set xtics timedate 86400

或者指定起始时间和间隔:

set xtics "2018-01-20", 86400

内容的提问来源于stack exchange,提问作者C.M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:44:06