Используйте скаляр из серии pandas в строке для метки графика

#python #pandas #string #label #histogram

#python #pandas #строка #метка #гистограмма

Вопрос:

Прошу прощения, если этот вопрос является дубликатом, я также подумал, что было бы легко найти ответ… Итак, моя проблема на самом деле в более общем плане связана с вставкой значения из объекта series в строку, но это происходит в контексте гистограммы с добавленной строкой для медианы, где я хочу, чтобы легенда для медианной линии отображала фактическую медиану. Вот данные игрушки

  df = pd.DataFrame({'age': ['1', '2', '3', '4', '5', '6', '7',
                          '8', '9', '10', '11', '12', '13', '14',
                          '15', '16', '17', '18', '19', '20', '21']}) 
 

И урезанный код для получения графика

 color = '#003366'
color2 = '#fc4f30'

ages = df['age']
bins = np.arange(5, 100, 2).tolist()
median_age = df['age'].median()

plt.hist(ages, bins=bins, color=color, edgecolor='black', alpha= 0.9)
plt.axvline(median_age, color=color2, label='Age Median', linewidth=2)

plt.legend()
plt.show()
 

Я хотел бы изменить переход label='Age Median' , чтобы быть label='Age Median = df['age'].median()' , но я не понимаю, как вставить скаляр в строку. Какие-либо подсказки?

Ответ №1:

Хорошо, один из способов сделать это — вставить {:.2f} в строку, а затем добавить .format(median_age) после строки.

 plt.axvline(median_age, color=color2, label="Age Median = {:.2f}".format(median_age), linewidth=2)
 

Примечание: {:.2f} это форматирование числа и дает два десятичных знака.

Ссылка: https://matthew-brett.github.io/teaching/string_formatting.html