【问题标题】:Duplicate output rows重复的输出行
【发布时间】:2023-01-25 22:59:29
【问题描述】:

我试图绘制此数据集,但在输出中得到了额外的行。

这是我的数据集 feeds.data:

2023-01-22 09:00
2023-01-22 11:40
2023-01-22 13:30
2023-01-22 19:40
2023-01-22 22:15
2023-01-23 04:45
2023-01-23 07:45
2023-01-23 10:15
2023-01-23 12:30
2023-01-23 13:30
2023-01-23 17:45
2023-01-23 22:45
2023-01-24 02:45
2023-01-24 07:30
2023-01-24 10:30
2023-01-24 13:30
2023-01-24 17:45

这是我的 gnuplot 程序的简化版本:

reset
set   output "./feedings.png"
set   xdata time
set   format x "%H:%M"
set   ytics time;
set   format y "%Y-%m-%d"

plot "./feedings.data" using (timecolumn(2, "%H:%M")):(timecolumn(1, "%Y-%m-%d")) with points;

这是输出: 如何摆脱 y 轴上多余的空行?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    简短回答:

    set ytics 86400
    unset mytics
    
    • 手动设置主要 ytic 距离,即 86400 秒为一天。 如果您的 y 范围超过 2 或 3 天,gnuplot auto-tics 应该会自动减少主要抽动的数量。
    • 通过unset mytics 删除次要 ytics。

    我会使用不带 set xdata time 的较新语法,而是使用 set format x "%H:%M" timedateset format y "%Y-%m-%d" timedate

    脚本:

    ### customize timedate format ytics
    reset session
    
    $Data <<EOD
    2023-01-22 09:00
    2023-01-22 11:40
    2023-01-22 13:30
    2023-01-22 19:40
    2023-01-22 22:15
    2023-01-23 04:45
    2023-01-23 07:45
    2023-01-23 10:15
    2023-01-23 12:30
    2023-01-23 13:30
    2023-01-23 17:45
    2023-01-23 22:45
    2023-01-24 02:45
    2023-01-24 07:30
    2023-01-24 10:30
    2023-01-24 13:30
    2023-01-24 17:45
    EOD
    
    set format x "%H:%M" timedate
    set format y "%Y-%m-%d" timedate
    set offsets 0,0,0.5,0.5
    set ytics 86400
    unset mytics
    
    plot $Data u (timecolumn(2, "%H:%M")):(timecolumn(1, "%Y-%m-%d")) 
          w p pt 7 lc "red" ti "Data"
    ### end of script
    

    结果:

    【讨论】:

      猜你喜欢
      • 2014-12-18
      • 1970-01-01
      • 2019-12-24
      • 2018-11-04
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      相关资源
      最近更新 更多