2022
我们一起努力

如何利用ggplot2绘制分组柱状图并进行组内分隔 - 开发技术

这篇文章主要为大家展示了“如何利用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)

组内设置间隔

如何利用ggplot2绘制分组柱状图并进行组内分隔 - 开发技术
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绘制分组柱状图并进行组内分隔”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云行业资讯频道!

赞(0)
文章名称:《如何利用ggplot2绘制分组柱状图并进行组内分隔 - 开发技术》
文章链接:https://www.fzvps.com/86852.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!