Python 使用pyplot和pandas的大数据集等高线图

Python 使用pyplot和pandas的大数据集等高线图,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有大量的数据样本,需要将其可视化。使用pandas,我可以创建一个包含相关变量的数据帧-3个长度为2000万的数组 这些是x,y几何坐标和(x,y)点上的z值 我需要一个在每个(x,y)点的z的“热图”。但是没有pyplot函数能处理这么大的数字 最好的方法是什么?虚拟数据 测试了200000行 import pandas as pd import numpy as np from matplotlib import pyplot as plt df=pd.DataFrame(np.rando

我有大量的数据样本,需要将其可视化。使用pandas,我可以创建一个包含相关变量的数据帧-3个长度为2000万的数组

这些是x,y几何坐标和(x,y)点上的z值

我需要一个在每个(x,y)点的z的“热图”。但是没有pyplot函数能处理这么大的数字

最好的方法是什么?

虚拟数据 测试了200000行

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df=pd.DataFrame(np.random.rand(200000,2), columns=['X','Y'])
df['Z']=df.apply(lambda x: x.X+x.Y*2, axis=1)
密码 创建bin间隔和groupby数据帧,将平均值应用于Z列,以便绘制每个X,Y bin对的平均值Z。最后是散点图

binsX = pd.cut(df.X, np.arange(0,1,0.001))
binsY = pd.cut(df.Y, np.arange(0,1,0.001))    
binned = df.groupby([binsX,binsY])['Z'].mean().reset_index()
binned.X = binned.X.apply(lambda x: x.mid)
binned.Y = binned.Y.apply(lambda y: y.mid)
plt.scatter(binned.X, binned.Y, c=binned.Z, s=0.01)

除非您有一个巨大的输出文件,并且愿意对其进行放大,否则该级别的详细信息将不可见。你能以任何方式聚合你的数据吗?我很乐意将它“装箱”在X、y和平均值之间,或者类似的范围内。我在考虑是否可以使用2d直方图。但我不需要“X,y的密度”我需要“X,y的密度”如果你有任何重复的数据值,删除它们将有助于减少数据大小。也许你正在寻找?因此,这可能是一个复制品。