уменьшить расстояние между полосами без изменения ширины - PullRequest
0 голосов
/ 01 августа 2020

Я создаю гистограмму вроде этой:

gender = ['M', 'F']
numbers = [males,females]
bars = plt.bar(gender, numbers, width=0.1, bottom=None, align='center', data=None)
plt.show()

Две полосы на моем графике довольно далеко друг от друга. Есть ли способ приблизить их БЕЗ изменения ширины? Если я увеличиваю ширину, расстояние между полосами уменьшается, но я не хочу увеличивать ширину. Может, что-то с изменением размера участка могло работать?

введите описание изображения здесь

1 Ответ

2 голосов
/ 02 августа 2020

Вы можете изменить xlim s. С категориальным индексом позиции x внутренне нумеруются как 0, 1, .... Matplotlib добавляет отступы по умолчанию 5% с каждой стороны, что слишком мало, когда есть только две полосы. При желании вы также можете изменить ylim, чтобы освободить немного больше места для текста в верхней части панели:

from matplotlib import pyplot as plt

gender = ['M', 'F']
numbers = [1644, 1771]
bars = plt.bar(gender, numbers, width=0.1, bottom=None, align='center', data=None)
for x, y in zip(gender, numbers):
    plt.text(x, y, f'{y}\n', ha='center', va='center')
plt.xlim(-0.9, len(gender) - 1 + 0.9)
plt.ylim(0, max(numbers) * 1.1)
plt.show()

пример сюжета

...