【问题标题】:Generating an array of dates in python在python中生成日期数组
【发布时间】:2013-04-08 00:38:20
【问题描述】:

我正在编写一个 python 脚本,它会在用户指定的两个日期之间生成一个数据条形图

例如,用户在此处输入 11 月 30 日和 12 月 4 日

将日期时间导入为 dt
dateBegin = dt.date(2012,11,30)
dateEnd = dt.date(2012,12,4)

有没有办法返回 dateBegin 和 dateEnd 之间的日期数组? 我想要的是 [30, 1, 2, 3, 4] 之类的东西。有什么建议吗?

【问题讨论】:

    标签: python datetime matplotlib


    【解决方案1】:

    当然!你在找matplotlib.dates.drange:

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import matplotlib.ticker as ticker
    import datetime as DT
    
    dates = mdates.num2date(mdates.drange(DT.datetime(2012, 11, 30),
                                          DT.datetime(2012, 12, 4),
                                          DT.timedelta(days=1)))
    print(dates)
    # [datetime.datetime(2012, 11, 30, 0, 0, tzinfo=<matplotlib.dates._UTC object at 0x8c8f8ec>), datetime.datetime(2012, 12, 1, 0, 0, tzinfo=<matplotlib.dates._UTC object at 0x8c8f8ec>), datetime.datetime(2012, 12, 2, 0, 0, tzinfo=<matplotlib.dates._UTC object at 0x8c8f8ec>), datetime.datetime(2012, 12, 3, 0, 0, tzinfo=<matplotlib.dates._UTC object at 0x8c8f8ec>)]
    
    vals = np.random.randint(10, size=len(dates))
    fig, ax = plt.subplots()
    ax.bar(dates, vals, align='center')
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
    plt.xticks(rotation=25)
    ax.set_xticks(dates)
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 2020-12-24
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 2022-06-13
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多