#python #pandas #seaborn #data-visualization
#python #панды #seaborn #визуализация данных
Вопрос:
Я пытаюсь отформатировать yticks здесь в процентах. Итак, покажите 10%, 20%, 30%
ax = sns.heatmap(pd.DataFrame({'A':[1,2,3],'B':[4,5,6]},index=[0.1,0.2,0.3]))
Я пробовал это, но он выдает неправильные галочки
ax = sns.heatmap(pd.DataFrame({'A':[1,2,3],'B':[4,5,6]},index=[0.1,0.2,0.3]))
ax.yaxis.set_major_formatter(PercentFormatter())
Ответ №1:
PercentFormatter
не работает, потому что он изменяет метки тиков в соответствии со значениями тиков. Тем не менее, тики в этом случае таковы [0.5, 1.5, 2.5]
, что вы видите 50%...
.
Вы можете вручную переформатировать метки тиков:
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]},index=[0.1,0.2,0.3])
ax = sns.heatmap(df)
ticks = ax.set_yticklabels([f'{x:.0%}' for x in df.index],
va='center') # to center the label vertically
Вывод:
Комментарии:
1. Может быть, также центрировать метки по вертикали?
ax.set_yticklabels(..., va='center')
2. Спасибо, пожалуйста, добавьте это в свой первоначальный ответ, чтобы помочь другим @Quang Hoang