在seaborn>0.9.0的情况下加速Swarmlot/stripplot?

2024-03-28 10:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在从0.9.0升级到seaborn 0.11.1之后,我注意到swarmplotstripplot在添加色调变量时变得慢得多

我正在绘制跨越约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);

stripplot example

这个数据集没有我正在处理的数据集(4000行)大(1000行),但它说明了这一点


Tags: 数据版本绘制情况pltseaborn性能级别
1条回答
网友
1楼 · 发布于 2024-03-28 10:27:47

我猜是0.9.1中的变化导致了基于熊猫索引信息而不是位置的向量匹配,我认为这是在每个类别中颜色的for循环中发生的,因此可能无法很好地扩展到许多类别。我不知道如何在0.11.1中避免它,但好消息是,这些函数已经被rewritten since then和一个简单的例子,您描述的维度现在运行得很快(~1s)

如果看不到你想要做什么的具体例子,就有点难以给出建议,但我的猜测是,在100个类别的大多数情况下,你无法真正看到抖动/群集,因此你应该能够使用scatterplot

相关问题 更多 >