我正在尝试创建显示“值”参数与不同分类参数之间的相关性的图。这是我到目前为止所拥有的:
plot = sns.pairplot(df, x_vars=['国家', 'tier_code', '行业', '公司规模', '地区'], y_vars=['值'], height=10)
这会产生以下一组图:
如您所见,“国家”和“行业”图的 x 轴极其拥挤。我想将类别标签旋转 90 度,这样它们就不会重叠。
我能找到的所有旋转示例都是针对其他类型的图,不适用于配对图。如果我使用 catplot 分别制作每个图,我可能可以让它工作,但我想一次性制作它们。这可能吗?
我正在使用 Google Colab,以防它产生任何影响。我的seaborn版本号是0.10.0。
最佳答案
Manish 的答案使用了 get_xticklabels
方法,根据我的经验,该方法并不总是能与更高级别的 seaborn 函数很好地配合。所以这里有一个解决方案可以避免这种情况。由于我没有您的数据,因此我使用 seaborn 的 tips
数据集作为示例。
我将 sns.pairplot()
返回的对象命名为 grid
,只是为了提醒我们它是一个 PairGrid
实例。一般来说,它的axes属性产生一个坐标轴对象的二维数组,对应于子图网格。因此,我使用 flat
方法将其转换为一维数组,尽管在只有一行子图的特殊情况下没有必要。
在我的示例中,我不想旋转第三个子图的标签,因为它们是个位数,因此我使用 [:2]
相应地对轴数组进行切片。
import seaborn as sns
sns.set()
tips = sns.load_dataset("tips")
grid = sns.pairplot(tips, x_vars=['sex', 'day', 'size'], y_vars=['tip'])
for ax in grid.axes.flat[:2]:
ax.tick_params(axis='x', labelrotation=90)
关于python - Seaborn PairPlot 旋转 x 刻度标签。分类数据标签重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61425636/