在带有字符串的线图中强制x轴顺序

时间:2019-08-02 18:20:56

标签: python-3.x pandas seaborn

我正在尝试绘制一条线图,其中在x轴上有与类别相对应的字符串,但是,我似乎无法将x轴从最小到最大排序,因为我似乎无法强制排序轴。

d = {'Average_Age': [22, 34, 49, 61], 'Salary_Category': 
   ['[1200, 2000[', '[2000, 6500[', '[6500, 10000[', '[11000, 15000]']}

df = pd.DataFrame(data=d)
df

test = sns.lineplot(x= 'Salary_Category' , y= 'Average_Age', data = df)
plt.title('Average Salaries per Age Category')
plt.xlabel('Salary Category')
plt.ylabel('Average Age')
plt.xticks(rotation=45)

所以这是我得到的情节,自那以来没有任何意义。薪水类别不一。    enter image description here

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您可以通过针对行号进行绘图来解决此问题,并更改刻度标签:

test = sns.lineplot(np.arange(len(df)) , df['Average_Age'])
plt.title('Average Salaries per Age Category')
plt.xlabel('Salary Category')
plt.ylabel('Average Age')

# set the ticks
plt.xticks(np.arange(len(df)),rotation=45)

# rename the ticks
test.set_xticklabels(df.Salary_Category)

plt.show()

输出:

enter image description here