【问题标题】:How to add monthly labels to x-axis using matplotlib?如何使用 matplotlib 将月度标签添加到 x 轴?
【发布时间】:2020-08-27 18:45:25
【问题描述】:

对于一项作业,我需要使用 matplotlib 绘制 2004-2014 年期间的记录(最低和最高)温度。该图几乎完整(见下文),除了 x 轴标签。绘图时,我没有指定 x 轴值,因此它生成了 0-365 之间的整数,即一年中的天数。现在我希望月份显示为 x 轴标签而不是整数(Jan、Feb 等)。有人可以帮帮我吗?

记录低温和高温:

【问题讨论】:

标签: python matplotlib


【解决方案1】:

我生成的源数据如下:

np.random.seed(13)
dates = pd.date_range(start='2014-01-01', end='2014-12-31')
temp = pd.DataFrame({'tMin': np.random.normal(0, 0.5, dates.size).cumsum() - 10,
    'tMax': np.random.normal(0, 0.5, dates.size).cumsum() + 10}, index=dates)

要获取带有月份标签的图片,请尝试以下代码:

# Imports
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Drawing
fig, ax = plt.subplots(figsize=(10, 4))
plt.xlabel('Month')
plt.ylabel('Temp')
plt.title('Temperatures 2014')
ax.xaxis.set_major_locator(mdates.MonthLocator())
fmt = mdates.DateFormatter('%b %Y')
ax.xaxis.set_major_formatter(fmt)
ax.plot(temp.tMin)
ax.plot(temp.tMax)
ax.fill_between(temp.index, temp.tMin, temp.tMax, color='#A0E0A0', alpha=0.2) 
plt.setp(ax.get_xticklabels(), rotation=30);

对于上面的源数据我得到了下图:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2019-12-18
    • 2021-12-23
    • 1970-01-01
    • 2013-01-23
    • 2012-03-14
    • 2019-06-20
    相关资源
    最近更新 更多