matplotlib画图x轴的顺序不是固定的,但是我们又想按照自己的想要的顺序排序,网上查了很多资料,最后发现,matplotlib的x轴的顺序是和数据有关系的,是按照x的值得出现顺序排序的,如果是df画图,我们呢可以根据某列的值先排序,然后在画图,但是如果该列的值是文本型,且排序的顺序不是我们想要的,我们可以先按照该列生成一列,具体操作如下:
import matplotlib.pyplot as plt import seaborn as sns julei_data_copy['label_1'] = julei_data_copy.label_tuisuan.map({0:0,3:1,1:2,2:3}) julei_data_copy = julei_data_copy.sort_values(by='label_1') for col,value in col_dict.items(): plt.figure(figsize=(16, 12)) sns.boxplot(data=julei_data_copy, x='label_1', y=col) plt.title(value) plt.xticks([0,1,2,3],['xxx','xxx','xxx','xxx']) f = plt.gcf() f.savefig(r'xxxxx{}.png'.format(value)) f.clear()
这样做就可以了