您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何利用ggplot2繪制分組柱狀圖并進行組內分隔”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何利用ggplot2繪制分組柱狀圖并進行組內分隔”這篇文章吧。
利用ggplot2繪制分組柱狀圖,并進行組內分隔。
加載R包、設置數據
library('ggplot2') library('reshape2') A = c("A","B","C","D","E") B = c(90,34,56,99,15) C = c(50,20,24,70,14) dat = data.frame(A,B,C) names(dat) = c("type","sample1","sample2") dat = melt(dat,variable.name="Sample",value.name = "Num") head(dat)
繪制分組柱狀圖
p = ggplot(dat, aes(x = type,y = Num,fill = Sample))+ #####這部分的position = "dodge",并排肩并肩的柱狀圖 geom_bar(stat ="identity",width = 0.6,position = "dodge")+ scale_fill_manual(values = c("red","blue"))+ #########設定顏色 labs(x = "",y = "", title = "test")+ ############坐標標簽和圖片title geom_text(aes(label = dat$Num),position=position_dodge(width = 0.5),size = 5,vjust = -0.25)+ ###########設置柱子上的標簽文字,文字的position_dodge(width=0.5)設置,保證分隔寬度。 guides(fill = guide_legend(reverse = F))+ ##############圖例順序反轉 theme(plot.title = element_text(size = 25,face = "bold", vjust = 0.5, hjust = 0.5), ######圖片title文字大小位置 legend.title = element_blank(), ##########圖例名稱為空 legend.text = element_text(size = 18, face = "bold"), ##########圖例文字大小 legend.position = 'right', ############圖例位置 legend.key.size=unit(0.8,'cm')) #############圖例大小 print(p)
組內設置間隔
p = ggplot(dat, aes(x = type,y = Num,fill = Sample))+ #####這部分的position_dodge(width=0.8)大于寬width = 0.6點,可以使得分組內柱子之間有縫隙,而不是貼合。 geom_bar(stat ="identity",width = 0.6,position = position_dodge(width=0.8))+ scale_fill_manual(values = c("red","blue"))+ labs(x = "",y = "", title = "test")+ ###########文字的position設置類似bar的position geom_text(aes(label = dat$Num),position=position_dodge(width = 0.9),size = 5,vjust = -0.25)+ guides(fill = guide_legend(reverse = F))+ theme(plot.title = element_text(size = 25,face = "bold", vjust = 0.5, hjust = 0.5), legend.title = element_blank(), legend.text = element_text(size = 18, face = "bold"), legend.position = 'right', legend.key.size=unit(0.8,'cm')) print(p)
以上是“如何利用ggplot2繪制分組柱狀圖并進行組內分隔”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。