我使用以下代码在seaborn中设置xticks,但这不起作用。我的 xticks 标签来自列表,它们已经正确排序。
[i[0] for i in jobs]
['admin.',
'blue-collar',
'entrepreneur',
'housemaid',
'management',
'retired',
'self-employed',
'services',
'student',
'technician',
'unemployed',
'unknown']
plt.figure(figsize=(7,3))
g = sns.countplot(x='job', y=None, data=df)
plt.title("Attempts by Job")
g.set(xticks=[i[0] for i in jobs])
#plt.xticks = jobs
plt.show()
~/anaconda2/envs/py36/lib/python3.6/site-packages/matplotlib/category.py in convert(value, unit, axis)
63
64 # force an update so it also does type checking
---> 65 unit.update(values)
66
67 str2idx = np.vectorize(unit._mapping.__getitem__,
AttributeError: 'NoneType' object has no attribute 'update'
Seaborn countplot 不是单位感知的。它将在数字位置 0,1,2,..,N-1 绘制条形图。因此,您不能将刻度设置为非数字位置。但是,您可以在这些位置更改刻度标签。
ax.set(xticks=range(len(jobs)), xticklabels=[i[0] for i in jobs])