Панда сюжетный барх с центрированными столбиками (пирамида) - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь создать график с помощью pandas.plot (kind = 'barh'), но получаю центрированные прямоугольники вокруг середины графиков (середина с точки зрения оси X).

Я пытался получить что-то вроде этого: https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/#29.-Population-Pyramid

Используя этот код:

ax = df.May2019.T.plot(kind='barh', subplots = False, stacked=True,
          figsize=(12,8), title = 'Number of customers per revenue slice',
          width=0.99)
vals = ax.get_yticks()
ax.set_yticklabels(['60%-80%', '40%-60%', '20%-40%', '0%-20%'])
ax.set_ylabel('Top x% Revenue')
ax.set_xlabel('Number of customers in revenue band')

Я получаю что-то похожее на изображение ниже, что и следовало ожидать: bar chart

То, на что я хотел бы надеяться, - это скорее нечто, центрирующее все прямоугольники в центре графика. Я понимаю, что ось X стала бы как бы менее значимой, но я ищу значение изображения.

Мой pd.Series выглядит так

0.8    75
0.6    26
0.4    10
0.2     3
Name: May2019, dtype: int64

Любое предложение относительно того, что я должен смотреть / изменить?

1 Ответ

1 голос
/ 17 июня 2019

Участок положительной и отрицательной половин:

fig, ax = plt.subplots(figsize=(6, 4))
(df.May2019.T/2).plot(kind='barh',
                      title='Number of customers per revenue slice',
                      width=0.99, ax=ax)
(df.May2019.T/-2).plot(kind='barh', width=0.99, ax=ax)

ax.set_yticklabels(['60%-80%', '40%-60%', '20%-40%', '0%-20%'])
ax.set_ylabel('Top x% Revenue')
ax.set_xlabel('Number of customers in revenue band')
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...