[英]how to change the order of factor plot in seaborn
我的數據如下所示:
m=pd.DataFrame({'model':['1','1','2','2','13','13'],'rate':randn(6)},index=['0', '0','1','1','2','2'])
我想在 [1,2,13] 中排序因子圖的 x 軸,但默認值為 [1,13,2]。
有誰知道怎么改?
更新:我想我已經通過以下方式弄清楚了,但也許有更好的方法使用索引來做到這一點?
sns.factorplot('model','rate',data=m,kind="bar",x_order=['1','2','13'])
您對帖子的更新顯示了正確的方法,即您應該按照您希望繪制它們的順序傳遞一個x
值列表進行order
。 數值數據的默認值是按排序順序繪制,因此如果您有數值,最好將它們保留為整數或浮點數而不是字符串,這樣它們將按“自然”順序排列。
正如@Pablo 在他的評論中所寫的那樣,@Archie 在他們的回答中正確地提到:
x_order
應替換為order
對於來這里尋找kind="count"
排序解決方案的人,可以這樣做:
sns.catplot(x="model", data=m, kind="count", order=m.model.value_counts().index)
這是因為默認情況下value_counts
方法將返回按計數降序排序的值。
從文檔看來,seaborn API 已再次更新,參數x_order
應替換為order
:
sns.factorplot('model', 'rate', data=m, kind="bar", order=['1','2','13'])
此外, factorplot
已重命名,並將在未來版本中刪除; 它被catplot
取代:
sns.catplot('model', 'rate', data=m, kind="bar", order=['1','2','13'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.