如何在使用matplotlib的pyplot绘制的图形上设置x轴标签?

时间:2013-07-29 08:33:42

标签: python matplotlib

我正在尝试绘制销售和费用值(在y轴上)多年(在x轴上),如下所示。我期望以下代码将2004,2005,2006和2007设置为x轴值。但是,它没有像预期的那样显示出来。请参见下面的图片。让我知道如何在x轴上正确设置年份值。

import matplotlib.pyplot as plt
years = [2004, 2005, 2006, 2007]
sales = [1000, 1170, 660, 1030]
expenses = [400, 460, 1120, 540]
plt.plot(years, sales)
plt.plot(years, expenses)
plt.show()

enter image description here

2 个答案:

答案 0 :(得分:4)

这也可以用不同的方式完成工作:

fig=plt.figure()
ax = fig.add_subplot(111)

years = [2004, 2005, 2006, 2007]

sales = [1000, 1170, 660, 1030]


ax.plot(years, sales)
ax.xaxis.set_major_formatter(matplotlib.ticker.FormatStrFormatter('%d'))

plt.show()

答案 1 :(得分:1)

以下代码应该适合您

 import matplotlib.pyplot as plt
 import matplotlib.dates as mdates
 import datetime as dt

 years = [2004, 2005, 2006, 2007]

 sales = [1000, 1170, 660, 1030]

 expenses = [400, 460, 1120, 540]


 x = [dt.datetime.strptime(str(d),'%Y').date() for d in years]


 plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
 plt.gca().xaxis.set_major_locator(mdates.YearLocator())
 plt.plot(x, sales)
 plt.plot(x, expenses)
 plt.gcf().autofmt_xdate()
 plt.show()