微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Seaborn 图中包装 xlabels

如何解决在 Seaborn 图中包装 xlabels

一直试图修改我的情节,以便可以包装 xlabels。
看过一些类似问题的建议。
但我无法在此使用它们。
ax.set_xticklabels 代码不包装标签
plt.xticks 代码抛出错误 -
AttributeError: 'Text' 对象没有属性 'expandtabs'

plt.figure(figsize = (7,5))
ax = sns.countplot(data = df3,x = df3.PaymentMethod,hue = df3.churn)
#ax.set_xticklabels(ax.get_xticklabels(),ha="right",horizontalalignment = 'center',wrap = True)
plt.xticks([textwrap.fill(label,10) for label in ax.get_xticklabels()],rotation = 10,fontsize=8,horizontalalignment="center")

具有重叠 xlabels 的绘图图像

enter image description here

解决方法

textwrap 使用评论中建议的代码按预期工作:

import numpy as np     # v 1.19.2
import pandas as pd    # v 1.1.3
import seaborn as sns  # v 0.11.0
import textwrap

# Create sample dataset
rng = np.random.default_rng(seed=1)
cat_names = ['Short name','Slightly longer name','Rather much longer name','Longest name of them all by far']
counts = rng.integers(10,100,len(cat_names))
var_cat = np.repeat(cat_names,counts)
var_bool = rng.choice(['True','False'],size=len(var_cat))
df = pd.DataFrame(dict(vcat=var_cat,vbool=var_bool))

# Plot seaborn countplot with wrapped tick labels
ax = sns.countplot(data=df,x='vcat',hue='vbool')
labels = [textwrap.fill(label.get_text(),12) for label in ax.get_xticklabels()]
ax.set_xticklabels(labels);

textwrap_ticklabels

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?