Seaborn小提琴图,如何设置标签?

3
我正在将一个向量列表绘制成一系列小提琴图。我想使用pandas数据帧,但是这些列表长度不相等。
这个可以工作: python g = sns.violinplot (data=res, cut=0, inner='box') 其中'res'是一个列表的列表(每个都是浮点向量),每个向量都应该变成一个小提琴。它成功了。
但是x轴只被标记为“0,1,2...”。添加参数“names=[0,1,2...]”会被静默忽略。
2个回答

8
您可以使用.set_xticklabels()方法:
ax = sns.violinplot(data=res, cut=0, inner='box')
ax.set_xticklabels(['a','b','c'...])

例子:

import numpy as np, seaborn as sns

res = [i for i in (np.random.randn(3, 25))]
ax = sns.violinplot(data=res, cut=0, inner='box')
ax.set_xticklabels(['a','b','c'])

结果如下图所示:

enter image description here


1
将返回值称为 ax,而不是 g,因为 violinplot 返回的是一个 Axes 对象,而不是一个 Grid 对象。 - mwaskom
@mwaskom:感谢您的更新。顺便说一下,seaborn 真是太棒了。 - mechanical_meat
@VorsprungdurchTechnik 我看到的输出是[Text(0, 0, 'a'), Text(0, 0, 'b'), Text(0, 0, 'c')],避免这种情况的正确方法是什么?使用sns.violinplot(data=res).set_xticklabels(['a','b','c'])可以解决。 - 5ervant - techintel.github.io
@5ervant:就标签输出而言,两种方法都没有问题。 - mechanical_meat

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接