pandas 如何在df.boxplot中添加y轴标签

swvgeqrz  于 2023-09-29  发布在  其他
关注(0)|答案(5)|浏览(123)

我从一个dataframe中生成一个箱线图:

bplot = df.boxplot(
    column=column_name,
    by=list1,
    fontsize=8,
    layout=(2,1),
    rot=90,
    figsize=(25,20)
)

其中,df是我的命名框,column_name是我想要的列,list1是用于groupby的列表?
我想用一个字符串标记我的y轴。尝试了这个:

plt.ylabel('ylabel')

但不起作用。

qyswt5oh

qyswt5oh1#

函数返回Axes对象。所以,不要使用bplot.ylabel('ylabel'),这是pyplot对象的函数,尝试用途:

bplot.set_ylabel('ylabel')

如果仍然有错误,请确保在调用boxplot()函数之后立即写入该行。
作为替代方案,您也可以首先创建pyplot子图,这将生成您需要的轴对象。然后,您可以在boxplot函数参数上指定axes对象:

from matplotlib import pyplot as plt
fig, ax = plt.subplot()
ax = df.boxplot(
    column=column_name,
    by=list1,
    fontsize=8,
    layout=(2,1),
    rot=90,
    figsize=(25,20),
    ax=ax
)
rhfm7lfc

rhfm7lfc2#

首先需要将pd.DataFrame.boxplot()return_type参数定义为'axes'。它将返回一个包含matplotlib.axes._subplots.AxesSubplot对象的pandas.Series。然后你可以像任何matplotlib axes对象一样操作这个对象:

bbplot = df.boxplot(column=column_name,
                    by=list1,
                    fontsize=8,
                    layout=(2,1),
                    rot=90,
                    figsize=(25,20),
                    return_type='axes')

bbplot[0].set_ylabel('yaxis')
uajslkp6

uajslkp63#

试试这个:
bplot.set_ylabel('ylabel')

r8uurelv

r8uurelv4#

这也将发挥作用:例如

df.boxplot(column = ['Funds']).set_ylabel('million USD')
wfsdck30

wfsdck305#

这也适用于:
plt.gca().set_ylabel('yLabel ')

相关问题