【问题标题】:Months as axis ticks月作为轴刻度
【发布时间】:2018-03-15 07:31:25
【问题描述】:

我想在此图中添加每月刻度 - 它目前显示 2015 年和 2016 年的刻度,我希望它显示一月、二月...十二月、一月。

我拥有的数据索引从 2015 年 1 月 1 日开始,到 2015 年 12 月 31 日结束。我到目前为止的代码是:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate

plt.figure(figsize=(20,12))
#ax = plt.add_subplot(111)
plt.plot_date(list(max_group_by15.index), max_group_by15['Data_Value'])
plt.plot_date(list(min_group_by15.index), min_group_by15['Data_Value'])
plt.plot_date(list(min_group_by14.index), min_group_by14['Data_Value'], '-b')
plt.plot_date(list(max_group_by14.index), max_group_by14['Data_Value'], '-r')

plt.legend(['2015 Temp Exceed Prev High', '2015 Temp Below Prev Low', 'Min Temp 2005-2014', 'Max Temp 2005-2014'])
plt.gca().fill_between(min_group_by14.index, min_group_by14['Data_Value'], max_group_by14['Data_Value'], facecolor = 'blue', alpha =.25)



plt.xlabel('Month')
plt.ylabel('Degrees (Celsius)')
plt.title('Daily High and low temp in Ann Arbor area from 2005-2014')

locator = mdate.MonthLocator()
plt.gca().xaxis.set_major_locator(locator)

产生这个情节:

【问题讨论】:

    标签: python-3.x matplotlib


    【解决方案1】:

    如果没有您的确切数据很难尝试,但我认为您只是错过了对 set_major_formatter 的呼叫。

    import datetime
    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    
    # Generate some random date-time data
    numdays = 500
    base = datetime.datetime.today()
    date_list = [base - datetime.timedelta(days=x) for x in range(0, numdays)]
    y = np.random.rand(numdays)
    
    # Set the locator
    locator = mdates.MonthLocator()  # every month
    # Specify the format - %b gives us Jan, Feb...
    fmt = mdates.DateFormatter('%b')
    
    
    plt.plot(date_list,y)
    X = plt.gca().xaxis
    X.set_major_locator(locator)
    # Specify formatter
    X.set_major_formatter(fmt)
    plt.show()
    

    【讨论】:

      【解决方案2】:

      如果只有一年,也可以这样:)

      months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan']
      plt.xticks(np.linspace(0,365,13), months)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-12
        • 2021-03-05
        • 2018-12-11
        • 1970-01-01
        • 2012-07-31
        • 2017-08-18
        • 1970-01-01
        相关资源
        最近更新 更多