gpt4 book ai didi

python - Seaborn 箱线图 : get the xtick labels

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:25 24 4
gpt4 key购买 nike

我正在使用 Seaborn 使用 pandas 数据帧中的数据制作箱线图。

colorpalette = sns.hls_palette(8,h=.9)
g = sns.boxplot(x="estimator", y="mean_score", data=dFrame, palette=colorpalette)

g.set(ylabel='Mean Accuracy', xlabel='')
plt.show()

enter image description here

这导致我在上图中。如您所见,滴答标签太长而无法排成一行。因此,我计划在 xticklabels 上使用 textwrap 将它们跨越多行。为了获得标签,我尝试使用

g.xaxis.get_ticklabels()

返回以下内容

<a list of 9 Text major ticklabel objects>

如果我像这样循环尝试

for item in g.xaxis.get_ticklabels():
print(item)

我得到以下输出

Text(0,0,'ExtraTreesClassifier')
Text(1,0,'RandomForestClassifier')
Text(2,0,'GradientBoostingClassifier')
Text(3,0,'LogisticRegression')
Text(4,0,'DecisionTreeClassifier')
Text(5,0,'kNearestNeighbors')
Text(6,0,'LinearSVC')
Text(7,0,'Perceptron')

有没有办法使用 seaborn 中的默认函数/方法更有效地做到这一点。

最佳答案

有一个 matplotlib 轴实例 ax(因为它是由 seaborn 绘图返回的),

ax = sns.boxplot(...)

允许获取标记为

ax.get_xticklabels()

从列表中取出文本的最简单方法是

texts = [t.get_text()  for t in ax.get_xticklabels()]

包装文本也可以即时完成

texts = [textwrap.fill(t.get_text(), 10)  for t in ax.get_xticklabels()]

甚至可以在同一行中将文本设置回刻度标签

ax.set_xticklabels([textwrap.fill(t.get_text(), 10)  for t in ax.get_xticklabels()])

关于python - Seaborn 箱线图 : get the xtick labels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42813744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com