Добавление единиц в аннотацию тепловой карты в Seaborn

Я пытаюсь показать таблицу процентов в виде тепловой карты в Seaborn:

sns.heatmap(S, annot=True, fmt=".1f", linewidths=1.0, square=1)

однако я хотел бы, чтобы знак процента появлялся после каждого числа в аннотациях тепловой карты. The fmt флаг только, кажется, принимает спецификаторы формата номера. Есть ли способ сделать это либо в Seaborn, либо с некоторой настройкой matplotlib?

2 ответов


вам нужно перебрать все текстовые значения тепловой карты и добавить знак%:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from matplotlib.ticker import FuncFormatter

sns.set()
fig, ax0 = plt.subplots(1,1)
data = np.array([[10.01,20.20],[-0.23,0.],[23.1049,-100.000000]])
ax = sns.heatmap(data, annot=True, fmt = '.1f', square=1, linewidth=1.)
for t in ax.texts: t.set_text(t.get_text() + " %")
plt.show()

enter image description here


заменить ".1Ф" к ".1%". И это должно решить вашу проблему.

sns.heatmap(S, annot=True, fmt=".1%", linewidths=1.0, square=1)