我有以下代码来创建两个条形图...
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)
我遇到的问题是情节将按升序排序。
我需要x轴从左到右依次为0到17。我尝试使用order=
参数并传递我上面设置的变量,但这不起作用。有谁知道如何通过y轴的值禁用排序行为?
我在Jupyter Notebook,OS X El Capitan,Python3
中这样做答案 0 :(得分:0)
我在stackoverflow
中的另一个问题;我通过对数据框进行排序来解决问题。
suicide_data['Education'] = suicide_data['Education'].astype('int')
suicide_data.sort_values(by='Education')
此代码按固定图表的Education
列对整个数据框进行排序。