首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >catplot(kind="count")明显慢于countplot()

catplot(kind="count")明显慢于countplot()
EN

Stack Overflow用户
提问于 2019-09-18 10:40:12
回答 1查看 1.4K关注 0票数 1

我正在处理一个相当大的数据集(大约40m行)。我发现,如果我直接调用sns.countplot(),那么我的可视化图景就会非常快:

代码语言:javascript
复制
%%time 
ax = sns.countplot(x="age_band",data=acme)

然而,如果我使用catplot(kind="count")进行同样的可视化,那么执行的速度就会大大减慢:

代码语言:javascript
复制
%%time
g = sns.catplot(x="age_band",data=acme,kind="count")

有这么大的性能差异的原因吗?catplot()是否对我的数据进行了某种形式的转换,然后才能绘制它呢?

如果有一个已知的原因,那么它是否扩展到所有图形级函数和轴级函数(如sns.scatterplot()sns.relplot(kind="scatter")等更快?)

我的首选是使用catplot(),因为我喜欢它的灵活性和在FacetGrid上简单地绘图,但是如果要花很长时间才能实现相同的绘图,那么我将直接使用轴级函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 13:15:36

catplot中,或者在FacetGrid中有很多开销,这将确保网格中的类别是同步的。例如,假设您有一个沿网格列绘制的变量,对于这些变量,并不是每个年龄组都会发生。你仍然需要证明没有出现的年龄组,并保持它的颜色。因此,彼此相邻的两个计数情节不一定构成一个小情节。

但是,如果您只对一个计数图感兴趣,那么猫图显然是过火的。另一方面,即使是一个计数图,也比一次计票的计票计谋过高。那是,

代码语言:javascript
复制
counts = df["Category"].value_counts().sort_index()
colors = plt.cm.tab10(np.arange(len(counts)))
ax = counts.plot.bar(color=colors)

速度将是

代码语言:javascript
复制
ax = sns.countplot(x="Category", data=df)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57990852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档