我将 x,y,z 数据存储在 pandas 数据框中,我想从中生成 2D 热图(深度图)。
df= pd.DataFrame(np.random.randint(0,100,size=(100, 3)), columns=list('XYZ'))
我不确定如何使用 matplotlib 来做到这一点。 This example建议转换为 numpy 数组并创建轮廓图。有没有办法直接从 pandas 绘图?如果没有,我如何将数据帧 reshape 为二维 numpy 数组?
最佳答案
首先,数据帧是 numpy 数组。它们只是被扩展为具有许多其他不错的功能。所以这里不需要“转换”任何东西。
其次,将随机值绘制为热图是行不通的。您要么需要有有意义的坐标,要么需要有有意义的 z 值。
如果一切都是随机的,那么您唯一能做的正式工作(但不会给出有意义的结果)就是使用 tripcolor
或 tricontourf
图。
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()
关于python - 使用 xyz 数据框在 Python 中生成热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43993864/