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

标签 python pandas matplotlib heatmap

我将 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 值。

如果一切都是随机的,那么您唯一能做的正式工作(但不会给出有意义的结果)就是使用 tripcolortricontourf 图。

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()

enter image description here

关于python - 使用 xyz 数据框在 Python 中生成热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43993864/

相关文章:

for-loop - 下一步之前的 Ipython notebook : show for-loop images "realtime",

python - 如何以低延迟和时间来绘制非常大的音频文件以保存文件?

python - Numpy 列栈 (46020, 369) (46020,) (46020,) (46020,)

python - 有没有办法迭代多个数据帧,将它们写入带有格式的多个 Excel 工作表?

python - Pandas :将具有相同键的行分组在一行中

python - 使用多种符号在夏令时期间本地化 Pandas 日期时间

python - 时间类型误差直方图

python - 如何管理创建、添加数据和显示多个 matplotlib 图形?

python - 想法运行/调试 py.test 单个测试而不是整个套件

python - 匹配由空格分隔的精确字符串 python