Гистограмма df.plot () против структуры ax.bar () matplotlib - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь изобразить таблицу в виде гистограммы.

Я получаю желаемый результат, используя структуру df.plot(kind='bar'). Но по определенным причинам мне теперь нужно построить график с использованием структуры ax.bar().

См. Пример снимка экрана. Я хотел бы изобразить ось x как категориальные метки, такие как структура df.plot(kind='bar'), а не непрерывная шкала, но мне нужно научиться использовать структуру ax.bar(), чтобы сделать то же самое.

enter image description here

1 Ответ

1 голос
/ 05 мая 2020
  • Сделайте индекс категориальным, установив тип 'str'
import pandas as pd
import matplotlib.pyplot as plt

data = {'SA': [11, 12, 13, 16, 17, 159, 209, 216],
        'ET': [36, 45, 11, 15, 16, 4, 11, 10],
        'UT': [11, 26, 10, 11, 16, 7, 2, 2],
        'CT': [5, 0.3, 9, 5, 0.2, 0.2, 3, 4]}

df = pd.DataFrame(data)

df['SA'] = df['SA'].astype('str')
df.set_index('SA', inplace=True)

width = 3
fig, ax = plt.subplots(figsize=(12, 8))

p1 = ax.bar(df.index, df.ET, color='b', label='ET')
p2 = ax.bar(df.index, df.UT, bottom=df.ET, color='g', label='UT')
p3 = ax.bar(df.index, df.CT, bottom=df.ET+df.UT, color='r', label='CT')

plt.legend()
plt.show()

enter image description here

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