如果因素是数字甚至是其类型字符串,则barplot按其值排序。 例如, factor = [“24”,“12”,“60”,“18”,“36”,“6”,“10”,“48”,“30”,“15”] 值= [9,8,7,6,5,4,3,2,1,0]
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()
答案 0 :(得分:3)
d
包含字符串。因此,它们被排序为单词(“6”高于“10”,因为字母“6”高于“1”)。
将其更改为整数以获得您期望的顺序。
第二个问题,您希望根据y值(代码中的值)进行排序,因此上述内容对您没有帮助,因为您不希望对d
值进行排序。您必须使用“order”参数明确订购它们:
sns.barplot(d, value,order=d)
假设d
按您的意愿排序,就像您的例子一样。