catplot问题轴对象

问题描述

假设我有一个名为df的Pandas DataFrame变量,它的列为col1,col2,col3,col4。

使用sns.catplot()一切正常:

fig = sns.catplot(x='col1',y='col2',kind='bar',data=df,col='col3',hue='col4') 

但是,只要我写:

fig.axes[0].get_xlabel()

我收到以下错误

AttributeError: 'numpy.ndarray' object has no attribute 'get_xlabel'

我知道我可以使用带有ax参数的sns.barplot(),但我的目标是继续使用sns.catplot()并从fig.axes [0]获取一个Axes对象。

解决方法

如果您选中help page,则会显示:

用于在FacetGrid上绘制分类图的图形级界面

因此,像您一样获得xlabel:

import seaborn as sns
df = sns.load_dataset("tips")
g = sns.catplot(x='day',y='tip',kind='bar',data=df,col='smoker',hue='sex') 

enter image description here

在此示例中,您的构面图是1 x 2,因此图的轴存储在(1,2)数组中:

g.axes.shape
(1,2)

要访问例如左侧之一(吸烟者=“是”),您可以执行以下操作:

g.axes[0,0].get_xlabel()
'day'

要更改标签:

g.axes[0,0].set_xlabel('day 1')
g.fig

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...