2013-07-29 153 views
2

我试图在下面给出的年(x轴)上绘制销售和费用值(在y轴上)。我期待以下代码将2004,2005,2006和2007设置为x轴值。但是,它没有按预期显示。看到下面的图片。让我知道如何在x轴上正确设置年份值。如何在使用matplotlib的pyplot绘制的图上设置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

+1

以供将来参考,这被称为_offset_,可以通过调用'ax.xaxis.get_major_formatter()。set_useOffset(False)'来禁用'Scal使用arFormatter',就像在这种情况下一样。 – hooy

回答

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

下面的一段代码应该为你

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() 
相关问题