如何控制Sean Barplot中的条形顺序

时间:2019-03-17 07:41:17

标签: python-3.x bar-chart seaborn

我有一个包含4000多个观测值和两个感兴趣的列的数据框:收入和cluster _。

enter image description here

我要创建一个带有seaborn的小节,如下所示:

enter image description here

我现在想要的是按字母顺序对条形进行排序,即首先(最左端)是A +,然后是A,B +,B,C。

以下命令产生值错误:

sorted_keys = ['A+', 'A', 'B+', 'B', 'C']
data7a.set_index('cluster_').reindex(sorted_keys, axis = 0)

ValueError: cannot reindex from a duplicate axis

我该怎么做?

1 个答案:

答案 0 :(得分:0)

过时的:

sns.barplot(x='cluster_', y='Revenue', data=data7.sort_index())

,因为可以创建情节。 而且,如果您想要任意顺序的列,您仍然可以

sorted_keys = ['C', 'B+', 'A+', 'B', 'A'] # for example
sns.barplot(x='cluster_', y='Revenue', data=data7.reindex(sorted_keys))

具有想要的任意顺序。

编辑:在seaborn中使用barplot时,您可以传递参数order,因此

sns.barplot(x='cluster_', y='Revenue', data=data7, order=['A', 'A+', 'B', 'B+', 'C'])

你应该很好。