使用pyplot和pandas的大数据集轮廓图

时间:2018-09-20 11:03:34

标签: python pandas matplotlib

我有一个庞大的数据样本,需要对其进行可视化。使用熊猫,我可以创建一个具有相关变量的数据框-3个长度为2000万的数组。

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

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

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

虚拟数据

经过200,000行测试

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)

代码

通过将平均值应用于Z列来创建bin间隔和 groupby 数据框,因此对于要绘制的每个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)

the documentation