2017-02-22 72 views
0

Вот мой код:Stacked площадь участка и даты в Matplotlib

import datetime as dt 
import matplotlib.pyplot as plt 
import matplotlib.dates as mdates 
dates = ['2014-12-15','2015-11-07','2016-01-10'] 
x = [dt.datetime.strptime(d,'%Y-%m-%d').date() for d in dates] 
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y')) 
plt.gca().xaxis.set_major_locator(mdates.DayLocator()) 
plt.stackplot(x,[1,2,3],[7,8,3]) 
plt.gcf().autofmt_xdate() 
plt.show() 

Он производит следующий сюжет:

ugly plot

Как это исправить, чтобы иметь только 3 даты? Я последовал следующий пример: SO example

ответ

3

Вам просто нужно установить xticks с помощью следующей команды:

plt.xticks(x) 

Просто добавьте эту строку, прежде чем отобразить рисунок. DayLocator отображает каждый день по умолчанию. В вашем случае у вас слишком много дней между показаниями. Вы можете просто удалить строку 7, которая устанавливает Daylocator и заменить ее на указанную выше строку, которая устанавливает тики в качестве ваших дат. Это результат: enter image description here