如何在Python中创建一个包含3列的热图-x和y坐标以及热度[duplicate]

qltillow  于 2022-12-02  发布在  Python
关注(0)|答案(2)|浏览(135)

此问题在此处已有答案

Seaborn heatmap, how to specifiy x,y axes from data frame(1个答案)
seaborn heatmap using pandas dataframe(3个答案)
Plotting heatmap for 3 columns in python with seaborn(2个答案)
16小时前就关门了。
我有一个包含3列的数据框,x点、y点和热量。如下所示:

X, Y, Z
-2, 0, 1
-2, 1, 2
-2, 2, 5
-1, 0, 3
-1, 1, 5
-1, 2, 8
.., .., ..
2, 1, 4
2, 2, 1

我想绘制这些数据的热图,其中X和Y是坐标,Z是热量。
我已经尝试了很多方法来做到这一点,并不断遇到不同的错误。

busg9geu

busg9geu1#

使用pivotseaborn.heatmap

import seaborn as sns

sns.heatmap(df.pivot(index='Y', columns='X', values='Z'))

输出量:

如果要处理缺少的坐标:

df2 = (df
   .pivot(index='Y', columns='X', values='Z')
   .pipe(lambda d: d.reindex(index=range(d.index.min(), d.index.max()+1),
                             columns=range(d.columns.min(), d.columns.max()+1),
                            )
        )
)

sns.heatmap(df2)

输出量:

nqwrtyyt

nqwrtyyt2#

https://seaborn.pydata.org/generated/seaborn.heatmap.html
但是我注意到你的数据都是数字。你可能在寻找一个Z维的彩色散点图,而不是一个真正的“热图”。你可以使用matplotlib的plt.scatter函数。(X_col=x,Y_col=y,color=Z)。https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html

相关问题