x轴unorder matplotlib seabourn

时间:2017-02-27 00:51:49

标签: python-3.x matplotlib seaborn

我有以下代码来创建两个条形图...

f, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 6), sharex=False, )

# Generate some sequential data
x1 = edu_count['Education']
y1 = edu_count['Frequency']
edu_order = ['0', '1.0', '2.0', '3.0', '4.0', '5.0', '6.0', '7.0', '8.0', '9.0', '10.0', '11.0', '12.0', '13.0', '14.0', '15.0', '16.0', '17.0']
sns.barplot(x1, y1, color='b', ax=ax1)
ax1.set_title('2003 All Death By Education Level')
ax1.set_ylabel("Frequency")
ax1.set_xlabel('Education Level')


# Center the data to make it diverging
x2 = suicide_data['Education']
y2 = suicide_data['Frequency']
sns.barplot(x2, y2, color='b', ax=ax2)
ax2.set_title('2003 Suicide Death By Education Level')
ax2.set_ylabel("Frequency")
ax2.set_xlabel('Education Level')

# Finalize the plot
sns.despine(bottom=True)
plt.tight_layout(h_pad=2)

我遇到的问题是情节将按升序排序。

enter image description here

我需要x轴从左到右依次为0到17。我尝试使用order=参数并传递我上面设置的变量,但这不起作用。有谁知道如何通过y轴的值禁用排序行为?

我在Jupyter Notebook,OS X El Capitan,Python3

中这样做

1 个答案:

答案 0 :(得分:0)

我在stackoverflow中的另一个问题;我通过对数据框进行排序来解决问题。

suicide_data['Education'] = suicide_data['Education'].astype('int')
suicide_data.sort_values(by='Education')

此代码按固定图表的Education列对整个数据框进行排序。