【问题标题】:How to plot a datetime in Python?如何在 Python 中绘制日期时间?
【发布时间】:2015-07-13 19:51:52
【问题描述】:

我有一个数字列表Z,一个列表Z_means(这是一个使用移动平均线的Z中数字的平均值列表,它与Z的len不同),还有另一个列表@ 987654323@ 与 Z_means 相同。

我有以下两个情节:

pylab.figure(00);
pylab.plot(range(len(Z)), Z, 'go',         [i for i in range(len(Z_means))], Z_means)

pylab.figure(11);
pylab.plot( [i for i in range(len(P))], P)

我有一个日期列表D = [d0, d1, d2, ...],每个日期都是 datetime.datetime 类型。

如何使用这些日期而不是 i 值(在 x 轴上)来绘制这些图?第 i 个值对应于 D 中的第 i 个日期。

请注意,我只想在图上显示月份和年份(而不是整个日期)

【问题讨论】:

    标签: python datetime plot


    【解决方案1】:

    我建议使用 matplotlib plot_date 方法与 matplotlib.dates.DateFormatter 一起绘制数据,在 x 轴上只放置月份和年份。

    这是一个(非常简单的)工作示例:

    import datetime
    import matplotlib.pyplot as plt
    from matplotlib.dates import DayLocator, HourLocator, DateFormatter, drange
    import numpy as np
    
    date1 = datetime.datetime( 2000, 3, 2)
    date2 = datetime.datetime( 2001, 10, 10)
    delta = datetime.timedelta(days=28)
    dates = drange(date1, date2, delta)
    
    ys = np.arange( len(dates) )
    
    fig, ax = plt.subplots()
    
    ax.plot_date(dates, ys*ys)
    
    ax.xaxis.set_major_formatter( DateFormatter('%Y-%m') )
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2012-12-28
      • 2018-04-16
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 2021-12-29
      相关资源
      最近更新 更多