R語言在ggplot2出圖時如何按值的大小排序

在使用ggplot2時,有時候需要按照值的大小給產(chǎn)生的可視化結(jié)果按順序排列,有個比較簡單的包可以幫我們完成:forcats。

假設(shè)我們有個數(shù)據(jù)集叫data,包含2列,列名分別為name和val,如下所示:

data <- data.frame(name=c("A","B","C","D","E") , value=c(3,12,5,18,45))

使用如下命令直接出圖時,

ggplot(data = data, aes(x = name, y = value, fill = name)) + geom_bar(stat = "identity")

可見:


有時我們需要按照value值排序,使x軸的分組按順序顯示,則可以使用forcats包中的fct_reorder命令來輕松完成。

這樣改造一下data,使用如下命令再次出圖時,

library(forcats)

ggplot(data = mutate(data, name=fct_reorder(name,value)), aes(x = name, y = value, fill = name)) + geom_bar(stat = "identity")

就會產(chǎn)生:


若需要倒序排列,則可使用desc()來完成:

ggplot(data = mutate(data, name=fct_reorder(name,desc(value))), aes(x = name, y = value, fill = name)) + geom_bar(stat = "identity")


怎么樣,是不是十分簡單?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容