我就是想不通如何更改 Seaborn FacetGrid 中的 xlabels。它提供了一种使用 set_xlabels() 更改 x 标签的方法,但不幸的是不能针对每个子图进行单独更改。
我有两个共享 y 轴但具有不同 x 轴的子图,并且我想用不同的文本对它们进行标记。
我有两个共享 y 轴但具有不同 x 轴的子图,并且我想用不同的文本对它们进行标记。
axes
属性访问FacetGrid
的各个轴,然后在每个轴上使用set_xlabel()
。例如:import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="time", hue="smoker")
g = g.map(plt.scatter, "total_bill", "tip", edgecolor="w")
g.axes[0,0].set_xlabel('axes label 1')
g.axes[0,1].set_xlabel('axes label 2')
plt.show()
在这个例子中,g.axes
的形状为(1,2)
(一行两列)。如果要一次设置所有轴,请使用以下代码:
g.set_axis_labels("Total bill ($)")
seaborn.FacetGrid
的文档说明,最好直接使用图级别函数,例如g = sns.relplot(data=tips, kind='scatter', ...)
,而不是使用sns.FacetGrid
。这些答案仍然适用。 - Trenton McKinney