嗨我有2个数组,它们位于:
array1 = [datetime.date(2014, 3, 3), datetime.date(2014, 2, 19), datetime.date(2014, 7, 13), datetime.date(2014, 5, 11), datetime.date(2014, 6, 13), datetime.date(2014, 1, 20)]
array2 = 1,5,8,9,4,6
这是我必须绘制2个数组的代码:
plt.plot_date((aray1), (array2), 'ro')
plt.xticks(rotation=45)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Quantity', fontsize=12)
plt.savefig('plot4.png')
我的阵列比上面的阵列大很多,所以我的日期被压扁在一起,不适合x轴。那么,我如何将x轴间隔设置为几个月,那么我绘制的日期可以插入正确的月份?
答案 0 :(得分:1)
嗯,您提供的数据集并不能重现问题,但是您正在寻找的是matplotlib example应用于您的数据的确切用例。
import numpy
from datetime import datetime
from matplotlib import pyplot as plt
from matplotlib.dates import DateFormatter, MonthLocator
t = numpy.array([datetime(2014, 3, 3),
datetime(2014, 2, 19),
datetime(2014, 7, 13),
datetime(2014, 5, 11),
datetime(2014, 6, 13),
datetime(2014, 1, 20)])
values = numpy.array([1, 5, 8, 9, 4, 6])
fig, ax = plt.subplots()
ax.plot_date(t, values, 'ro')
plt.xticks(rotation=45)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Quantity', fontsize=12)
months = MonthLocator()
monthsFmt = DateFormatter("%b '%y")
ax.xaxis.set_major_locator(months)
ax.xaxis.set_major_formatter(monthsFmt)
plt.show()