我有一个250.000行但140列的数据帧,我正在尝试构建一对图。变量。 我知道子图的数量很大,以及绘制图表所需的时间。 (我正在等待一个多小时的i5上有3,4 GHZ和32 GB RAM)。
记住scikit学习允许并行构建随机森林,我正在检查这是否也可能与seaborn。 但是,我没有找到任何东西。源代码似乎为每个图像调用matplotlib绘图函数。
难道不能并行化吗?如果是的话,从这里开始的好方法是什么?
答案 0 :(得分:3)
如果速度瓶颈确实在那里发生,那么你可以对你的DataFrame
进行缩减采样,以便快速查看1000行,而不是并行化。通常,1000点就足以大致了解正在发生的事情。
即。 sns.pairplot(df.sample(1000))
。
答案 1 :(得分:2)
将对图保存到图像中,然后显示该图像,而不是在浏览器中全部呈现。
from IPython.display import Image
import seaborn as sns
import matplotlib.pyplot as plt
sns_plot = sns.pairplot(df, size=2.0)
sns_plot.savefig("pairplot.png")
plt.clf() # Clean parirplot figure from sns
Image(filename='pairplot.png') # Show pairplot as image
答案 2 :(得分:1)
对我来说,由于数据的差异,我遇到过直方图需要很长时间的情况。我只有 1200 行和 4 列,但我花了半个小时才放弃。我认为它是如此分散和无序,以至于直方图不断更新。一种解决方法可能是使用 bin 参数,但我的解决方案是使用 KDE 作为对角线。使用 KDE,只需几秒钟。
sns.pairplot(df, diag_kind='kde')