使用 xyz 数据框在 Python 中生成热图

2024-04-07

我有 x,y,z 数据存储在 pandas 数据框中,我想从中生成 2D 热图(深度图)。

df= pd.DataFrame(np.random.randint(0,100,size=(100, 3)), columns=list('XYZ'))

我不确定如何使用 matplotlib 来做到这一点。这个例子 https://stackoverflow.com/questions/22872061/generating-a-heat-map-using-3d-data-in-matplotlib建议转换为 numpy 数组并创建轮廓图。有没有办法直接从 pandas 绘图?如果没有,我如何将数据帧重塑为二维 numpy 数组?


首先,数据帧是 numpy 数组。它们只是被扩展为具有许多其他不错的功能。所以这里不需要“转换”任何东西。

其次,将随机值绘制为热图是行不通的。您要么需要有有意义的坐标,要么需要有有意义的 z 值。

如果一切都是随机的,那么你唯一能做的,正式工作(但不会给出有意义的结果)就是使用tripcolor or a tricontourf plot.

import matplotlib.pyplot as plt 
import pandas as pd
import numpy as np

df= pd.DataFrame(np.random.randint(0,100,size=(100, 3)), columns=list('XYZ'))

fig, (ax, ax2)=plt.subplots(ncols=2)
ax.set_title("tripcolor")
ax.tripcolor(df["X"], df["Y"], df["Z"])
ax2.set_title("tricontour")
ax2.tricontourf(df["X"], df["Y"], df["Z"])

plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 xyz 数据框在 Python 中生成热图 的相关文章

随机推荐