在从0.9.0升级到0.11.1之后,我注意到当添加色调变量时,swarmplot和stripplot变得更慢。
我绘制了大约100个类别和3个色调级别的大约4000个数据点。
在seaborn 0.9.0中,这要快得多,大约需要5秒。现在需要30-60秒。
在不添加色调变量的情况下,不同版本之间的速度是相当的。
通过尝试不同版本的seaborn,我确定随着更新到0.9.1,这一点发生了变化。有没有我遗漏的新设置,我可以用它来概括新版本的seaborn的旧性能?
编辑:这是我正在尝试做的一个例子:
dfTest = sns.load_dataset('planets')
sns.stripplot(data=dfTest,
x='method',
hue='number',
y='orbital_period',
dodge=True)
plt.legend().remove()
plt.ylim([0,1000])
plt.xticks(rotation=80);

这个数据集(1000行)没有我正在处理的(4000行)那么大,但它说明了这一点。
发布于 2021-01-28 09:52:54
我猜是0.9.1版本中的变化导致了这一变化,它基于熊猫索引信息而不是位置来匹配向量,我认为这发生在每个类别的色调上的for循环中,因此可能无法很好地扩展到许多类别。我不知道您如何在0.11.1中避免它,但好消息是,这些函数已经rewritten since then,并且一个简单的例子,您描述的维数现在运行得很快(~1s)。
如果没有看到你想要做什么的例子,就有点难以给出建议,但我的猜测是,在大多数有100个类别的情况下,你不能真正看到抖动/蜂拥而至,所以你应该能够使用scatterplot……
https://stackoverflow.com/questions/65916968
复制相似问题