Как настроить процентные метки для каждой колонки гистограммы?

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

 Creating onject containing Ticket distribution.
feature_pc = titan_fixed_train.groupby(by = 'Pclass')['Survived'].value_counts()

# Declaring figure size.
plt.figure(figsize = (10, 5))

# Declaring color parameters. 
sns.countplot(data = titan_fixed_train, x = 'Pclass',  hue = 'Survived', palette = 'magma')

# Customised percentage labels for each instance. 

plt.text(x = -0.27, y = feature_pc[1][0] + 3, s = "{} %".format(((feature_pc[1][0]/feature_pc[1].sum())*100).round(2)), fontsize = 10)
plt.text(x = 0.12, y = feature_pc[1][1] + 3, s = "{} %".format(((feature_pc[1][1]/feature_pc[1].sum())*100).round(2)), fontsize = 10)
plt.text(x = -0.27 + 1, y = feature_pc[2][0] + 3, s = "{} %".format(((feature_pc[2][0]/feature_pc[2].sum())*100).round(2)), fontsize = 10)
plt.text(x = 0.12 + 1, y = feature_pc[2][1] + 3, s = "{} %".format(((feature_pc[2][1]/feature_pc[2].sum())*100).round(2)), fontsize = 10)
plt.text(x = -0.27 + 2, y = feature_pc[3][0] + 3, s = "{} %".format(((feature_pc[3][0]/feature_pc[3].sum())*100).round(2)), fontsize = 10)
plt.text(x = 0.12 + 2, y = feature_pc[3][1] + 3, s = "{} %".format(((feature_pc[3][1]/feature_pc[3].sum())*100).round(2)), fontsize = 10)

# Plot title: 
plt.title('Survival Distribution among different Passenger Ticket Classes', fontsize = 16)

# Label Editing 

plt.xticks([0, 1, 2], ['First Class', 'Second Class', 'Third Class'], fontsize = 10)
plt.xlabel('Passenger Ticket Class', fontsize = 15)
plt.ylabel('Count', fontsize = 15)

# Padding 
plt.tight_layout(pad = -3)

# SHow graph. 
plt.show()

введите сюда описание изображения

Не могу разобраться как настроить процентные метки на столбцах, просто не понимаю откуда берутся эти цифры (-0,27, 0.12), почему +3 и s = "{} %" это что значит?

 plt.text(x = -0.27, y = feature_pc[1][0] + 3, s = "{} %".format(((feature_pc[1][0]/feature_pc[1].sum())*100).round(2)), fontsize = 10)
    plt.text(x = 0.12, y = feature_pc[1][1] + 3, s = "{} %".format(((feature_pc[1][1]/feature_pc[1].sum())*100).round(2)), fontsize = 10)
    plt.text(x = -0.27 + 1, y = feature_pc[2][0] + 3, s = "{} %".format(((feature_pc[2][0]/feature_pc[2].sum())*100).round(2)), fontsize = 10)
    plt.text(x = 0.12 + 1, y = feature_pc[2][1] + 3, s = "{} %".format(((feature_pc[2][1]/feature_pc[2].sum())*100).round(2)), fontsize = 10)
    plt.text(x = -0.27 + 2, y = feature_pc[3][0] + 3, s = "{} %".format(((feature_pc[3][0]/feature_pc[3].sum())*100).round(2)), fontsize = 10)
    plt.text(x = 0.12 + 2, y = feature_pc[3][1] + 3, s = "{} %".format(((feature_pc[3][1]/feature_pc[3].sum())*100).round(2)), fontsize = 10)

а подскажите пожалуйста тогда какой еще есть способ вместо этого? "{}".format(...) .


Ответы (0 шт):