Изменить цвет указанных c меток в sns.heatmap? - PullRequest
0 голосов
/ 07 апреля 2020

Есть ли способ изменить цвет указанных c меток в sns.heatmap?

Основываясь на моей попытке на этом ответе , я попробовал следующее:

mask = np.zeros_like(cor, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
plt.figure(figsize=(12,10))
g = sns.heatmap(cor,
            vmin=-1,
            cmap='coolwarm',
            annot=False,
            mask = mask);

columns = df.columns
lut = dict(zip(columns, "rbg"))
row_colors = columns.map(lut)

for tick_label in g.ax_heatmap.axes.get_yticklabels():
    tick_text = tick_label.get_text()
    if tick_text == 'ascii':
        column = columns.loc[int(tick_text)]
        tick_label.set_color(lut[column])

Но получил:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-204-67642fc463ec> in <module>
     12 row_colors = columns.map(lut)
     13 
---> 14 for tick_label in g.ax_heatmap.axes.get_yticklabels():
     15     tick_text = tick_label.get_text()
     16     if tick_text == 'ascii':

AttributeError: 'AxesSubplot' object has no attribute 'ax_heatmap'

И тепловую карту, где метка ascii не красная.

1 Ответ

0 голосов
/ 08 апреля 2020

Скопированный вами ответ был для clustermap, который возвращает объект с несколькими осями.

Здесь вы используете heatmap, который работает на одной оси. Вы должны написать:

ax = sns.heatmap(cor,
            vmin=-1,
            cmap='coolwarm',
            annot=False,
            mask = mask);
(...)
for tick_label in ax.get_yticklabels():
    (...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...