gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:23:34 27 4
gpt4 key购买 nike

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

%%time 
ax = sns.countplot(x="age_band",data=acme)

Plot using axis level function directly:

但是,如果我使用 catplot(kind="count") 进行相同的可视化,那么执行速度会急剧减慢:

%%time
g = sns.catplot(x="age_band",data=acme,kind="count")

# Plot using figure level function with kind="count"

造成这么大的性能差异有什么原因吗? catplot() 是否在绘制数据之前对我的数据进行某种转换?

如果有已知原因,那么它是否扩展到所有图形级别函数与轴级别函数,例如 sns.scatterplot()sns.relplot(kind= “分散”)等等?

我的偏好是使用catplot(),因为我喜欢它的灵 active 和在 FacetGrid 上轻松绘图,但如果需要更长的时间才能实现相同的绘图,那么我将使用轴水平直接起作用。

最佳答案

catplotFacetGrid 中存在大量开销,这将确保类别沿网格同步。考虑例如您有一个沿着网格列绘制的变量,该变量并非每个年龄组都出现。您仍然需要显示未出现的年龄组并保留其颜色。因此,两个相邻的计数图不一定构成一个猫图。

但是,如果您只对单个计数图感兴趣,那么猫图显然是多余的。另一方面,与计数条形图相比,即使是单个计数图也太过分了。也就是说,

counts = df["Category"].value_counts().sort_index()
colors = plt.cm.tab10(np.arange(len(counts)))
ax = counts.plot.bar(color=colors)

速度是原来的两倍

ax = sns.countplot(x="Category", data=df)

关于python - catplot(kind ="count") 明显慢于 countplot(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57990852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com