python x y z 1_X Y Z阵列数据到热图

如果我理解正确的话,有三列X和Y表示Z值的位置

考虑下面的例子。共有三列:X和Y包含位置信息(在本例中为类别),Z包含对热图进行着色的值。x = np.array(['a','b','c','a','b','c','a','b','c'])

y = np.array(['a','a','a','b','b','b','c','c','c'])

z = np.array([0.3,-0.3,1,0.5,-0.25,-1,0.25,-0.23,0.25])

然后我们从这些列创建一个数据帧并对它们进行转置(因此x、y和z实际上变成了列)。给出列名并确保Z_值是一个数字。df = pd.DataFrame.from_dict(np.array([x,y,z]).T)

df.columns = ['X_value','Y_value','Z_value']

df['Z_value'] = pd.to_numeric(df['Z_value'])

生成此数据帧。X_value Y_value Z_value

0 a a 0.30

1 b a -0.30

2 c a 1.00

3 a b 0.50

4 b b -0.25

5 c b -1.00

6 a c 0.25

7 b c -0.23

8 c c 0.25

因此,您无法创建热图,但是通过调用df.pivot('Y_value','X_value','Z_value'),您可以将数据帧旋转到可用于热图的窗体。pivotted= df.pivot('Y_value','X_value','Z_value')

生成的数据帧如下所示。X_value a b c

Y_value

a 0.30 -0.30 1.00

b 0.50 -0.25 -1.00

c 0.25 -0.23 0.25

然后,您可以将pivotted馈送到sns.heatmap以创建热图。sns.heatmap(pivotted,cmap='RdBu')

导致这个热图。

a466931d217304dc778f3f45f18bfec1.png

您可能需要对代码进行一些调整以满足您的精确需要。但由于我没有示例数据可供参考,所以我需要制作自己的示例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值