python - Seaborn PairPlot 旋转 x 刻度标签。分类数据标签重叠

标签 python seaborn google-colaboratory visualization

我正在尝试创建显示“值”参数与不同分类参数之间的相关性的图。这是我到目前为止所拥有的:

plot = sns.pairplot(df, x_vars=['国家', 'tier_code', '行业', '公司规模', '地区'], y_vars=['值'], height=10)

这会产生以下一组图:

enter image description here

如您所见,“国家”和“行业”图的 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)

sample plot with rotated x labels

关于python - Seaborn PairPlot 旋转 x 刻度标签。分类数据标签重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61425636/

相关文章:

python - 使用 dh_virtualenv 对 python 包进行 debianising 时,console_scripts 不在路径上

python - 根据颜色图着色的条形图?

python - 谷歌 Colabs Notebook 中保存的图像与本地计算机中保存的图像不同

python - 使用 from_dict() 初始化 pandas DataFrame 的子类

python - 类型错误 : strptime() argument 1 must be string, 不是系列

python - 在 seaborn 箱线图上设置 ylim

python - 在 Google Colab 上的 R 笔记本中安装 python 库

google-colaboratory - 将 Web3 导入 Google Colab 时出错

python - sphinx_rtd_theme 从 1.4.0 版本开始不再是硬依赖

python - 使用 mdates 和 matplotlib 将 x 轴设置为日期