cod*_*ler 7 python performance kernel-density
当我尝试制作散射图时,按密度着色,它需要永远.
可能是因为数据的长度非常大.
这基本上就是我这样做的:
xy = np.vstack([np.array(x_values),np.array(y_values)])
z = gaussian_kde(xy)(xy)
plt.scatter(np.array(x_values), np.array(x_values), c=z, s=100, edgecolor='')
Run Code Online (Sandbox Code Playgroud)
作为附加信息,我必须补充一点:
>>len(x_values)
809649
>>len(y_values)
809649
Run Code Online (Sandbox Code Playgroud)
是否有其他选择可以获得相同的结果,但速度结果更好?
不,没有好的解决方案。
每个点都要准备好,画一个圆,这个圆可能会被其他点隐藏。
我的技巧:(注意这些点可能会稍微改变输出)
获取最小值和最大值,并将图像设置为该尺寸,这样该图形就不需要重做。
尽可能删除数据:
重复数据
以选定的精度(例如浮点数)进行转换并删除重复的数据。您可以使用点的一半大小(或者如果您想要原始外观,则使用图形的分辨率)来计算精度。
更少的数据:更快的速度。删除比在图表中绘制点(将被覆盖)要快得多。
通常,热图对于庞大的数据集更有趣:它提供了更多信息。但就你而言,我认为你的数据仍然太多。
注意:https: //docs.scipy.org/doc/scipy/reference/ generated/scipy.stats.gaussian_kde.html#scipy.stats.gaussian_kde也有一个很好的例子(只有2000点)。无论如何,本页也使用了我的第一点。
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |