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

如何在Gnuplot中基于conTime轴仅显示日期变化处的标签

Gnuplot实现X轴仅标注日期变化位置的配置方案

核心思路

  • 直接复用你已通过SQL预处理好的CSV数据(仅日期变化的行保留dayXS_date值,其余行留空)
  • 借助Gnuplot的xtic()函数绑定数据列,只在非空日期的位置生成X轴刻度标签
  • 始终以conTime作为X轴的实际数值基准,保证曲线的平滑性

完整Gnuplot代码示例

# 适配CSV格式的基础配置
set datafile separator ','
# 设置输出终端,这里用PNG,可按需改成SVG/PDF等格式
set terminal pngcairo enhanced font 'Arial,10' size 1200,600
set output 'monitor_trend.png'

# X轴关键配置
set xlabel '时间'
set xtics rotate by 45 right  # 旋转标签避免重叠,角度可自行调整
set format x ''  # 隐藏默认的conTime数值刻度,只显示日期标签

# 绘图命令:第一行绘制监测曲线,第二行确保日期刻度正常生成
plot 'your_data.csv' using 1:2:xtic(3) with linespoints lw 2 title '监测数值', \
     '' using 1:(NaN):xtic(3) with points notitle

关键配置说明

  • set datafile separator ',':必须设置,否则Gnuplot无法正确解析CSV数据
  • set format x '':隐藏默认的conTime数值刻度,只保留自定义的日期标签
  • xtic(3):指定用第3列(dayXS_date)作为刻度标签,Gnuplot会自动跳过空值行,不会生成无效标签
  • rotate by 45 right:解决日期标签过长重叠的问题,角度可根据实际显示效果调整(比如改成30度)

适配你的数据样本的调整建议

假设你的CSV数据结构如下(示例):

conTime,temp_value,dayXS_date
100,23.5,2024-05-01
101,24.1,
102,23.8,
150,25.3,2024-05-02
151,24.9,

  • 如果dayXS_date在你的CSV里是第4列,把代码里的xtic(3)改成xtic(4)即可
  • 若不需要显示数据点,把with linespoints改成with lines;若只想看数据点,改成with points
  • 调整曲线粗细可添加lw N参数(N为数字,比如lw 2代表2倍线粗)

针对你之前尝试代码的优化提示

如果之前的代码出现空标签占位、刻度乱跳的问题,本质是没利用好Gnuplot对空xtic()值的自动忽略特性。改用using 列号:列号:xtic(日期列)的方式,就能精准只在日期变化的位置生成标签。

内容的提问来源于stack exchange,提问作者Cwinte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:45:10