2015-11-24 3 views
1

Я хочу в интерактивном режиме изменить морскую теплоизоляцию. Однако, бег sns.heatmap дважды делает Colorbar умножения (Fig. 1: Before clicking "Reset", Fig. 2: After clicking "Reset" )Как изменить BOTH морскую тепловую карту и цветную панель

Я попытался установить cbar=0 к Heatmap в reset обратного вызова, текст Colorbar не меняется, хотя масштаб последней матрицы в 1000 раз большая ,

Знаете ли вы, как изменить ОБА материальную карту и цветную панель? Обратите внимание, что карты тепла имеют разный размер матрицы и разные цветовые палитры.

import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns 
from matplotlib.widgets import Slider, Button, RadioButtons 

fig, ax = sns.plt.subplots() 

sns.heatmap(np.random.rand(10, 12), ax=ax) 

resetax = sns.plt.axes([0.8, 0.025, 0.1, 0.04]) 
button = Button(resetax, 'Reset', hovercolor='0.975') 
def reset(event): 
    sns.heatmap(np.random.rand(8, 8)*1000, ax=ax, cmap = sns.diverging_palette(220, 10, as_cmap=True)) 
button.on_clicked(reset) 

sns.plt.show() 
+1

Я думаю, вы хотите указать оси цветной панели для графика тепловой карты. – mwaskom

ответ

0

Если очистить участок с помощью plt.clf в reset(), она очищает сюжет и рисует только новый, смотрите ниже. См. Также this answer.

def reset(event): 
    plt.clf() 
    sns.heatmap(np.random.rand(8, 8)*1000, ax=ax, cmap = sns.diverging_palette(220, 10, as_cmap=True)) 
Смежные вопросы