Контроль ширины баров в matplotlib с данными за месяц - PullRequest
11 голосов
/ 20 мая 2009

Когда я строю данные, взятые за месяц, с помощью столбцов, их ширина очень мала. Если я установлю вспомогательный локатор оси X на DayLocator (), я увижу, что ширина баров установлена ​​на 1 день, но я бы хотел, чтобы они заполняли весь месяц.

Я попытался установить локатор второстепенных тиков на MonthLocator () без эффекта.

[править]

Может быть, пример будет более явным, вот ipython -pylab пример того, что я имею в виду:

x = [datetime.datetime(2008, 1, 1, 0, 0),
    datetime.datetime(2008, 2, 1, 0, 0),
    datetime.datetime(2008, 3, 1, 0, 0),
    datetime.datetime(2008, 4, 1, 0, 0),
    datetime.datetime(2008, 5, 1, 0, 0),
    datetime.datetime(2008, 6, 1, 0, 0),
    datetime.datetime(2008, 7, 1, 0, 0),
    datetime.datetime(2008, 8, 1, 0, 0),
    datetime.datetime(2008, 9, 1, 0, 0),
    datetime.datetime(2008, 10, 1, 0, 0),
    datetime.datetime(2008, 11, 1, 0, 0),
    datetime.datetime(2008, 12, 1, 0, 0)]

y = cos(numpy.arange(12) * 2)

bar(x, y)

Это дает 12 полос шириной 2 пикселя, я бы хотел, чтобы они были шире и расширялись от месяца к месяцу.

1 Ответ

36 голосов
/ 20 мая 2009

Просто используйте аргумент ключевого слова width:

bar(x, y, width=30)

Или, так как разные месяцы имеют разное количество дней, чтобы он выглядел хорошо, вы можете использовать последовательность:

bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...