我有一个庞大的数据样本,需要对其进行可视化。使用熊猫,我可以创建一个具有相关变量的数据框-3个长度为2000万的数组。
这些是x,y的几何坐标和(x,y)点上的z值。
我在每个(x,y)点都需要一个z的“热图”。但是没有pyplot函数可以处理这么大的数字。
最好的方法是什么?
答案 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)