当使用数字时,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”] 然后按值排序。
这是前后的图片。
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()
答
d
包含字符串。因此,它们被分类为单词(由于字母“6”高于“1”,所以“6”比“10”更高)。
将其更改为整数以获得您期望的一般顺序。
第二个问题,您要根据y值(您的代码中的值)进行排序,所以上面的内容不会帮助您,因为您不希望d
值排序。你将不得不使用“命令”参数明确地命令他们:只要你想,像你的例子
sns.barplot(d, value,order=d)
假设d
是有序的。
发布列表和绘图的代码。 – kabanus