Подтвердить что ты не робот

Вращающиеся стрелки приводят к тому, что тики частично скрыты в matplotlib

Я создаю график с именами по оси x и значениям времени (минуты) по оси y. Имена по оси x похожи на

 ['cooking']18:15:27 ,['study']18:09:19,['travel']18:21:34` etc ..

где, когда значения y равны 5,1,1 и т.д., я дал xlabel как "категории" и ylabel как "длительности в минутах".

Поскольку xticks были строками некоторой длины, я решил повернуть их на 90, чтобы избежать перекрытия. Теперь тики частично скрыты, и xlabel исчез. plot where xticks get partially hidden and xlabel disappears Есть ли какой-то способ заставить весь сюжет разместить все..?

спасибо

знак

вот фрагмент кода

import matplotlib.pyplot as plt
...
figure = plt.figure()
barwidth = 0.25
ystep = 10
plt.grid(True)
plt.xlabel('categories')
plt.ylabel('durations in  minutes')
plt.title('durations for categories-created at :'+now)
plt.bar(xdata, ydata, width=barwidth,align='center')
plt.xticks(xdata,catnames,rotation=90)
plt.yticks(range(0,maxduration+ystep,ystep))
plt.xlim([min(xdata) - 0.5, max(xdata) + 0.5])
plt.ylim(0,max(ydata)+ystep)
figure.savefig("myplot.png",format="png")
4b9b3361

Ответ 1

Один хороший вариант - повернуть метки тика.

В вашем конкретном случае вам может быть удобно использовать figure.autofmt_xdate() (который будет вращать метки оси x между прочим).

В качестве альтернативы вы можете сделать plt.setp(plt.xticks()[1], rotation=30) (или различные другие способы сделать то же самое).

Кроме того, через несколько лет после редактирования, с последними версиями matplotlib, вы можете вызвать fig.tight_layout(), чтобы изменить размеры, чтобы они соответствовали меткам внутри фигуры, как отмечает @elgehelge ниже.

Ответ 2

plt.tight_layout()

Но не забудьте добавить эту команду после plt.plot() или plt.bar()

Ответ 3

Установка ограничивающей рамки при сохранении также отображает метки:

figure.savefig('myplot.png', bbox_inches='tight')