我有一系列数据(长度为365,一年中每天的最高温度)。 我正在制作一个简单的线图,其中x轴表示一年中的几天,y轴表示温度值。下面是输出图像的相关代码片段。
fig = plt.figure()
temp_data = temp_total[:]
plt.plot(temp_data-273.15)
plt.ylabel('Temperature (C)',size=12)
plt.xlabel('Day of Year',size=12)
我想在x轴上每个月绘制一次,而不是每年每天都有刻度的x轴。 1月,2月,3月等
我还没有发现任何可行的东西。有什么建议吗?
答案 0 :(得分:2)
由于几个月的天数不等,最好使用实际日期来绘制。
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, timedelta
import numpy as np; np.random.seed(42)
temp_data = np.cumsum(np.random.randn(365))+273.15
dates = [datetime(2018,1,1)+timedelta(days=i) for i in range(len(temp_data))]
plt.plot(dates, temp_data-273.15)
plt.gca().xaxis.set_major_locator(mdates.MonthLocator())
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b'))
plt.ylabel('Temperature (C)',size=12)
plt.xlabel('Day of Year',size=12)
plt.show()