Два кадра данных передаются вместе на нескольких участках - PullRequest
0 голосов
/ 30 августа 2018

Я хочу построить 5 разных участков, по одному на каждый год данных. Для каждого года я хочу показать DEM и REP для каждого округа. Я написал следующий код:

fig = plt.figure(figsize=(13,10))

plt.subplot(3, 2, 1)
plt.bar(data=districts_2018[['DEM', 'REP']], 
        x=districts_2018.index, 
        height=(districts_2018[['DEM', 'REP']]))

plt.subplot(3, 2, 2)
plt.bar(data=districts_2017[['DEM', 'REP']], 
        x=districts_2017.index, 
        height=districts_2017['DEM'])

plt.subplot(3, 2, 3)
plt.bar(data=districts_2016[['DEM', 'REP']], 
        x=districts_2016.index, 
        height=districts_2016['DEM'])

plt.subplot(3, 2, 4)
plt.bar(data=districts_2015[['DEM', 'REP']], 
        x=districts_2015.index, 
        height=districts_2015['DEM'])

plt.subplot(3, 2, 5)
plt.bar(data=districts_2014[['DEM', 'REP']], 
        x=districts_2014.index, 
        height=districts_2014['DEM'])

plt.tight_layout();

Однако, как и в случае с первым подпунктом (3,2,1), я получаю ошибку: ValueError: shape mismatch: objects cannot be broadcast to a single shape. Этот код работает, если я только устанавливаю высоту districts_2018['DEM'], но тогда отображаются только матрицы высот, а не повторы.

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете напрямую использовать упаковщик панд для построения графиков сгруппированных столбцов. Установите ax на соответствующий участок, в котором вы хотите отобразить график.

fig, axes = plt.subplots(3,2,figsize=(13,10))
for ax, df in zip(axes.flat, [districts_2018, districts_2017, ....])
    df[['DEM', 'REP']].plot.bar(ax=ax)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...