График Seaborn не показывает все значения столбца

У меня есть следующий кадр данных:

my_df = pd.DataFrame(data={'Year': ['2017','2018','2019','2019','2019','2019','2020','2020'],
      'Threshold':[96, 91, 20.59, 47.37, 78.12, 10.00, 15.00 ,91],
      'Fee' : ["No","No", "20%", "20%", "5%", "20%", "20%", "No"]})

Я использую seaborn для построения графика:

palette={"No": "g","20%": "y", "5%": "r"}

fig,ax = plt.subplots()
fig.set_size_inches(10,8)

sns.barplot(x="Year", y="Threshold",hue = 'Fee', palette = palette, data=my_df, ci=None)

for p in ax.patches: 
    ax.annotate("%.2f" % p.get_height(), (p.get_x() + p.get_width() / 2, p.get_height()),
                ha='center', va='center', fontsize=11, color='black', xytext=(0, 10), 
                textcoords='offset points',fontweight='bold')

Однако отображаемый график возвращает среднее значение пороговой переменной за год, и я хочу показать на графике все 8 пороговых значений кадра данных.

Сюжет Seaborn

Как я могу это исправить?


person Renata Mesquita    schedule 28.11.2019    source источник


Ответы (1)


Попробуй это:

my_df = pd.DataFrame(data={'Year': ['2017','2018','2019','2019','2019','2019','2020','2020'],
      'Threshold':[96, 91, 20.59, 47.37, 78.12, 10.00, 15.00 ,91],
      'Fee' : ["No","No", "20%", "20%", "5%", "20%", "20%", "No"]})

palette={"No": "g","20%": "y", "5%": "r"}

fig,ax = plt.subplots()
fig.set_size_inches(10,8)

g = sns.barplot(x=my_df.index, y="Threshold",hue = 'Fee', palette = palette, data=my_df, ci=None)
g.set(xticklabels=my_df['Year'])

for p in ax.patches: 
    ax.annotate("%.2f" % p.get_height(), (p.get_x() + p.get_width() / 2, p.get_height()),
                ha='center', va='center', fontsize=11, color='black', xytext=(0, 10), 
                textcoords='offset points',fontweight='bold')

Новый график

person Venkatesh Prabhu    schedule 28.11.2019
comment
Это то, что я хотел зарисовать. Изменение оси X имело значение. Спасибо Венткатеш Прабху. - person Renata Mesquita; 29.11.2019
comment
Только дополнительный вопрос. Есть ли способ поставить столбцы за один и тот же год вместе? Я имею в виду 4 такта за 2019 год вместе и 2 такта за 2020 год вместе. - person Renata Mesquita; 29.11.2019