Как построить несколько диаграмм с помощью matplotlib из разложенного фрейма данных с Pandas - PullRequest
0 голосов
/ 06 мая 2020

Это образец набора данных, который у меня есть, используя следующий фрагмент кода

ComplaintCity = nyc_df.groupby(['City','Complaint Type']).size().sort_values().unstack()
top5CitiesByComplaints = ComplaintCity[top5Complaints].rename_axis(None, axis=1)
top5CitiesByComplaints
    Blocked Driveway    Illegal Parking Noise - Street/Sidewalk Noise - Commercial  Derelict Vehicle
City                    
ARVERNE 35.0    58.0    29.0    2.0 27.0
ASTORIA 2734.0  1281.0  500.0   1554.0  363.0
BAYSIDE 377.0   514.0   15.0    40.0    198.0
BELLEROSE   95.0    106.0   13.0    37.0    89.0
BREEZY POINT    3.0 15.0    1.0 4.0 3.0
BRONX   12754.0 7859.0  8890.0  2433.0  1952.0
BROOKLYN    28147.0 27461.0 13354.0 11458.0 5179.0
CAMBRIA HEIGHTS 147.0   76.0    25.0    12.0    115.0
CENTRAL PARK    NaN 2.0 95.0    NaN NaN
COLLEGE POINT   435.0   352.0   33.0    35.0    184.0
CORONA  2761.0  660.0   238.0   248.0   

Я хочу иметь возможность строить то же самое, что и горизонтальная гистограмма для каждой жалобы. Он должен отображать города с наибольшим количеством жалоб. Что-то похожее на изображение ниже. Я не знаю, как go об этом.

enter image description here

1 Ответ

1 голос
/ 06 мая 2020

Вы можете создать список экземпляров оси с помощью subplots и построить столбцы один за другим:

fig, axes = plt.subplots(3,2,figsize=(10,6))
for c,ax in zip(df.columns, axes.ravel()):
    df[c].sort_values().plot.barh(ax=ax)

fig.tight_layout()

Тогда вы получите что-то вроде этого:

enter image description here

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