matplotlib 如何在jointplot、pairplot、heatmap、catplot上设置标签

dddzy1tm  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(164)

我在python上使用seaborn绘制图形,并希望标记x轴和y轴。
当我只画一个图,如条形图,rugplot,直方图等,我可以只用途:
pyplot.xlabel('x') pyplot.ylabel('y')
但是对于jointplot、pairplot、heatmap和catplot这样的图,结果与我预期的不同。
Jointplot在内部绘制散点图,在外部绘制直方图。所以当我使用pyplot.xlabel('x') pyplot.ylabel('y')时,标签被绘制在直方图的轴上。
此代码绘制4个catplot,并使用xlabel, ylabel仅标记底部catplot。

import seaborn as sns
from matplotlib import pyplot
tips = sns.load_dataset("tips")

sns.catplot(x="sex", y="total_bill", hue="smoker",row="day",
            kind="violin", data=tips, split=True)
pyplot.suptitle("tip - catplot", y=1.01)
pyplot.xlabel('x')
pyplot.ylabel('y')
pyplot.show();

我如何标记整个图的轴?或每个图?

zbsbpyhn

zbsbpyhn1#

你可以通过先将catplot的返回值赋给一个变量来抓取每个轴对象。轴是通过axes属性获得的。然后为这些轴设置标签:

g = sns.catplot(x="sex", y="total_bill", hue="smoker",row="day",
            kind="violin", data=tips, split=True)
for ax, lbl in zip(g.axes.flatten(), 'abcd'):
    ax.set_xlabel(f'x axis {lbl}')

相关问题