Я строю тепловую карту морского побережья и хотел бы аннотировать только указанные c ячейки с пользовательским текстом.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from io import StringIO
data = StringIO(u'''75,83,41,47,19
51,24,100,0,58
12,94,63,91,7
34,13,86,41,77''')
labels = StringIO(u'''7,8,4,,1
5,2,,2,8
1,,6,,7
3,1,,4,7''')
data = pd.read_csv(data, header=None)
data = data.apply(pd.to_numeric)
labels = pd.read_csv(labels, header=None)
#labels = np.ma.masked_invalid(labels)
fig, ax = plt.subplots()
sns.heatmap(data, annot=labels, ax=ax, vmin=0, vmax=100)
plt.show()
Приведенный выше код создает следующую тепловую карту:
и закомментированная строка генерирует следующую тепловую карту:
Я хотел бы показать только ненан (или ненулевой) текст в ячейках. Как этого достичь?