簡體   English   中英

如何更改seaborn中因子圖的順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM