【问题标题】:How to change BOTH seaborn heatmap and colorbar如何同时更改 seaborn 热图和颜色条
【发布时间】:2023-03-25 09:50:01
【问题描述】:

我想以交互方式更改 seaborn 热图。但是,运行sns.heatmap 两次会使颜色条成倍增加(Fig. 1: Before clicking "Reset"、Fig. 2: After clicking "Reset" )

我尝试在reset回调中将cbar=0设置为热图,颜色条的文本没有改变,尽管后者矩阵的比例是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()

【问题讨论】:

  • 我想你想为热图指定颜色条轴。

标签: python matplotlib widget heatmap seaborn


【解决方案1】:

如果您在reset() 中使用plt.clf 清除绘图,它会清除绘图并仅绘制新绘图,见下文。另见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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-07
    • 2015-03-06
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2019-03-08
    相关资源
    最近更新 更多