问题描述
假设我有一个名为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')
在此示例中,您的构面图是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