当使用数字时,Seaborn barplot的错误顺序即使其类型为字符串

当使用数字时,Seaborn barplot的错误顺序即使其类型为字符串

问题描述:

如果因素是数字,即使是其类型字符串,barplot也会按其值排序。 例如, 因子= [“24”,“12”,“60”,“18”,“36”,“6”,“10”,“48”,“30”,“15”] value = [9,8,7,6,5,4,3,2,1,0]当使用数字时,Seaborn barplot的错误顺序即使其类型为字符串

barplot无法按值排序... 如果我将d列表更改为字母数字字符,例如 factor = [“a”,“b”,“c”] 然后按值排序。

这是前后的图片。

enter image description here

enter image description here

d = ["24", "12", "60", "18", "36", "6", "10", "48", "30", "15"] 
value = [9,8,7,6,5,4,3,2,1,0] 
y_cumsum = np.cumsum(value) 
sns.barplot(d, value) 
sns.pointplot(d, y_cumsum) 
plt.show() 
+0

发布列表和绘图的代码。 – kabanus

d包含字符串。因此,它们被分类为单词(由于字母“6”高于“1”,所以“6”比“10”更高)。

将其更改为整数以获得您期望的一般顺序。

第二个问题,您要根据y值(您的代码中的值)进行排序,所以上面的内容不会帮助您,因为您不希望d值排序。你将不得不使用“命令”参数明确地命令他们:只要你想,像你的例子

sns.barplot(d, value,order=d) 

假设d是有序的。