繁体   English   中英

如何在没有将轴存储在 numpy.ndarray 中的情况下创建具有多列的计数图?

[英]How do I create a count plot with multiple columns without the axes being stored in a numpy.ndarray?

我是编码新手,这是我的第一篇文章。 对不起,如果它的措辞更好!

我正在参加免费的在线课程,对于其中一个项目,我必须制作一个带有 2 个子图列的计数图。

我已经设法使用下面的代码制作了一个包含多个子图的计数图,并且所有值都是正确的。

fig = sns.catplot(x = 'variable', hue = 'value', order = ['active', 'alco', 'cholesterol', 'gluc', 'overweight', 'smoke'], col='cardio', data = df_cat, kind = 'count')

但是由于我这样做的方式, fig.axes 存储在二维数组中。 数组两行之间的唯一区别是标题(有氧运动 = 0 或有氧运动 = 1)。 我假设这是因为 col='cardio'。 col 参数是否总是导致 fig.axes 存储在二维数组中? 有没有办法解决这个问题,还是我必须完全改变我制作图表的方式?

我确信这通常不是问题,但正因为如此,当我通过测试模块运行我的程序时,它会失败,因为测试模块中的某些函数不适用于 numpy.ndarrays。

如果我将引用从 fig.axes[0] 更改为 fig.axes[0,0],我通过了测试,但显然我不能只更改测试模块以通过。

我发现了一些东西。 这只是一个实现细节,因此依赖它会很疯狂。 如果你设置 col_wrap,那么你会得到一个不同形状的轴 ndarray。

转载如下:

import seaborn as sns 

# I don't have your data but I have this example
tips = sns.load_dataset("tips")

fig = sns.catplot(x='day', hue='sex', col='time', data=tips, kind='count', col_wrap=2)
fig.axes.shape

它具有形状(2,),即它是一维的。 海生==0.11.2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM