Установка расстояния между барами на графике matplotlib

1

У меня есть график matplotlib.bar, и я не могу понять, как расположить столбцы дальше друг от друга, чтобы метки были удобочитаемыми.

Вот мой код

import matplotlib  
matplotlib.use('Agg')  
import matplotlib.pyplot as plt  
def makePlot(self, data, labels, title, fileName):  
    plt.bar(range(1,len(data)+1), data, align="center")  
    plt.title(title)  
    plt.xticks(range(1, len(labels)+1), labels)  
    plt.savefig(fileName)  
    plt.clf()
  • 1
    Почему бы не поменять местами оси X и Y (чтобы облегчить чтение меток X)? Кроме того, если X не имеют определенного порядка, вы можете изменить их порядок, увеличив или уменьшив значения Y.
  • 0
    Категории на оси х представляют собой своего рода тенденцию во времени, поэтому для них имеет больше смысла оставаться на оси х. Меня больше всего беспокоит большое количество места с правой стороны графика - почему я не могу просто увеличить расстояние между барами, чтобы заполнить это пространство, или почему это не происходит автоматически?
Показать ещё 2 комментария
Теги:
matplotlib

1 ответ

2
Лучший ответ

Вы можете изменить размер фигуры, вызвав plt.figure(figsize=(x,y)), где x и y - ширина и высота в дюймах. Эта строка должна быть до вызова plt.bar.

В качестве альтернативы вы можете уменьшить шрифт метки. Вы сделали бы это, изменив свой вызов на xticks на plt.xticks(range(1, len(labels)+1), labels, size='small').

Еще одна вещь, которую нужно попробовать - использовать функцию plt.xlim(), чтобы вручную установить пределы оси x.

  • 4
    Это помогает, но возможно ли установить интервал между столбиками вручную?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню