2013-07-29 2 views
2

Я пытаюсь рассчитать стоимость продаж и затрат (по оси Y) в течение лет (по оси x), как указано ниже. Я ожидаю, что следующий код будет установлен в 2004, 2005, 2006 и 2007 годах как значения оси x. Но он не показывает, как ожидалось. См. Изображение, приведенное ниже. Дайте мне знать, как правильно установить значения лет на оси x.Как установить метки оси x на фигуре, построенной с использованием мазута matplotlib?

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() 
Смежные вопросы