2017-10-19 104 views
2

如果因素是數字,即使是其類型字符串,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

回答

2

d包含字符串。因此,它們被分類爲單詞(由於字母「6」高於「1」,所以「6」比「10」更高)。

將其更改爲整數以獲得您期望的一般順序。

第二個問題,您要根據y值(您的代碼中的值)進行排序,所以上面的內容不會幫助您,因爲您不希望d值排序。你將不得不使用「命令」參數明確地命令他們:只要你想,像你的例子

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

假設d是有序的。

相關問題