您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在R語言中使用ggplot2改變柱狀圖的順序,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
library(ggplot2) library(ggthemes) dt = data.frame(obj = c('A','D','B','E','C'), val = c(2,15,6,9,7)) dt$obj = factor(dt$obj, levels=c('D','B','C','A','E')) ## 設置柱條的順序 p = ggplot(dt, aes(x = obj, y = val, fill = obj, group = factor(1))) + geom_bar(stat = "identity", width = 0.5) + ## 修改柱條的寬度 theme_economist() p ## 特注:dt$obj 是因子類型,ggplot2作圖的順序就是按照這個因子水平的順序來的, ## 所以我們修改因子水平的順序即可修改作圖的順序,具體情況可以輸出一下 dt$obj
補充:ggplot柱狀圖調整順序_1.3 讓ggplot2的柱狀圖根據y的大小依次排列
方法:映射時使用reorder函數,將映射給x的橫坐標的變量()的次序,依據映射給y的變量的大小排列。
#先看一個常見的柱狀圖,此處的fill是給每一條的柱狀圖同一個顏色,所以沒有寫在ggplot語句中;當然默認先把映射給x的Abb變量轉化為因子變量(factor)
ggplot(upc, aes(x = Abb, y = Change)) + geom_col(fill = "#669933")
發現: 柱子的大小沒有任何規律,原因在于下面的x軸的坐標。雖然沒有專門設置x軸字體,不是清晰,但可以看到x軸的排列是根據ggplot中映射給x的每個因子變量的首字母排列的,A、B、C...
所以要想生成我們想要的順序的柱狀圖:要么手動設置因子的順序,要么按照按照一定的邏輯排列:比如,按照y軸的值從小到大排列。那么:
# 映射給x的不是簡單的變量名為Abb的變量,而是將Abb變量根據Change變量(默認從小到大)reorder后的Abb變量
ggplot(upc, aes(x = reorder(Abb,Change), y = Change)) + geom_col(fill = "#669933")
如圖:
當然,想讓y軸從大到小變化,只需在Change前面加個負號:
ggplot(upc, aes(x = reorder(Abb, - Change), y = Change)) + geom_col(fill = "#669933")
看完上述內容,你們對如何在R語言中使用ggplot2改變柱狀圖的順序有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。