Сложенная гистограмма обрезана по краям - PullRequest
1 голос
/ 08 октября 2019

Я создал столбчатую диаграмму в виде панд, и первый и последний столбцы находятся по краям графика. Они обрезаны.

График, который я хочу получить, представляет собой столбчатую диаграмму с накоплением и линейную диаграмму с осью 2 y. Значения слоев слоев должны отображаться в слое.

Я создал pd.DataFrame, который содержит следующее:

       1.0  1.3  1.7  2.0   2.3   2.7   3.0  3.3  3.7   4.0   5.0
SS 15  2.0  0.0  1.0  1.0   4.0   8.0   5.0  6.0  6.0  10.0  19.0
SS 16  1.0  1.0  5.0  2.0  11.0  16.0  11.0  8.0  7.0   6.0  12.0
SS 17  1.0  5.0  3.0  3.0   5.0   6.0   5.0  9.0  8.0   9.0  13.0

Каждая строка (SS 15 - SS 17)должен быть один столбец с накоплением, где значение - один слой столбца. Линейная диаграмма содержит только 3 точки, которые должны быть соединены линией.

Код, который я использую для построения графика:

fig, ax1 = plt.subplots()
ax1 = df.plot(kind='bar',
              stacked=True,
              figsize=(20,15), 
              fontsize=20, 
              grid=True, 
              rot=45, 
              align='center', 
              edgecolor='#000000', 
              colormap='Paired')
ax2 = ax1.twinx()
ax1.set_xlabel('X-LABEL', fontsize=25)
ax1.set_ylabel('1st Y-LABLE', fontsize=25)
ax1.set_title(name, fontsize=35)
ax1.legend(fontsize=15, loc='upper left')
ax1.grid(True, axis='y')
df2 = pd.DataFrame(medi) #medi is just a dict with 3 pais
df2.plot(ax=ax2, 
         color='red', 
         marker='o',
         linewidth='2', 
         fontsize=20)
ax2.legend(["2nd LEGEND"], fontsize=15, loc='upper right')
ax2.set_ylim(1,5)
ax2.set_ylabel('2nd Y-LABEL', fontsize=25)
ax2.grid(True,axis='y')

В результате:

enter image description here

Как видите, первый и последний столбец находятся прямо по краям графика и обрезаются. Я попытался переопределить xticks, но это не сработало.

Вторая проблема, которую я имею, состоит в отображении значений в барах. Я нашел решение здесь , но оно приводит к ошибке:

AttributeError: 'NoneType' object has no attribute 'update'

1 Ответ

0 голосов
/ 22 октября 2019

Я нашел решение.

Я создал сгруппированный столбец с помощью matplotlib, и он отлично работал.

Я понятия не имею, почему график обрезался с помощью pandas, но этоработы.

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