#python #matplotlib
#python #matplotlib
Вопрос:
У меня есть график 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.
2. Категории на оси x представляют собой своего рода тенденцию с течением времени, поэтому для них имеет смысл оставаться на оси x. Меня больше всего беспокоит большой объем пространства в правой части графика — почему я не могу просто увеличить интервал между полосами, чтобы заполнить это пространство, или почему это не происходит автоматически?
3. Вы можете использовать
plt.xlim()
функцию, чтобы вручную установить границы оси x.4. Это исправлено. Спасибо. Не могли бы вы отредактировать это в своем ответе, чтобы было более понятно, что это ответ на мой вопрос?
Ответ №1:
Вы можете изменить размер рисунка, вызвав, plt.figure(figsize=(x,y))
где x
и y
— ширина и высота в дюймах. Эта строка должна быть перед вашим вызовом plt.bar
.
В качестве альтернативы вы можете уменьшить шрифт метки. Вы могли бы сделать это, изменив свой вызов на xticks
на plt.xticks(range(1, len(labels) 1), labels, size='small')
.
Еще одна вещь, которую нужно попробовать, это использовать функцию plt.xlim (), чтобы вручную установить границы оси x.
Комментарии:
1. Это помогает, но возможно ли установить интервал между столбцами вручную?