我需要根据以下要求构建定制的seaborn热图样图:
import pandas as pd
df = pd.DataFrame({"A": [0.3, 0.8, 1.3],
"B": [4, 9, 15],
"C": [650, 780, 900]})
df_info = pd.DataFrame({"id": ["min", "max"],
"A": [0.5, 0.9],
"B": [6, 10],
"C": [850, 880]})
df_info = df_info.set_index('id')
df
A B C
0 0.3 4 650
1 0.8 9 780
2 1.3 15 900
df_信息
id A B C
min 0.5 6 850
max 0.9 10 880
df
内的每个值都应该在df_info
中定义的范围内。
例如,如果列A
的值在0.5和0.9范围内,则视为正常值。超出范围的值应使用自定义热图着色
特别是:
min
的值应着色,例如蓝色。最小值越低,蓝色的阴影越深李>max
的值应着色,例如红色。它们的最大值越高,红色的阴影越深李>Q:我不知道如何用标准的热图来实现这一点,我甚至不确定我能用热图图来实现这一点。有什么建议吗
据我所知,热图只能有一个数值比例。我建议对
df
数据框中的数据进行规范化,以便每列中的值如下所示:0
和1
之间,如果值在df_info
的min
{0
如果该值低于df_info
的min
1
如果值高于df_info
的max
要规范化数据帧,请使用:
最后,要创建颜色编码的热图,请使用:
使用
vmin
和vmax
的附加计算允许根据与最小值和最大值的差异动态缩放颜色贴图使用您的输入数据框,我们得到以下热图:
相关问题 更多 >
编程相关推荐