R语言的ggplot2绘制多个分组簇状柱状图

R语言的ggplot2绘制多个分组簇状柱状图

今天要分享的是ggplot2去绘制多个分组簇状柱状图,话不多说,现在开始吧:

老规矩,还是先看数据和最终的效果图,进行解释后,再说明如何绘制


可以明显看到,图代表的意思是不同年龄组、性别的高血压和糖尿病的患病率

年龄是x轴的分组,性别是堆积块的分组,疾病是分页的分组(也就是高血压一张图,糖尿病一张图),图中的数据是患病率。

所以,画图的前提是先把数据整理成4列,然后自己分清每一列变量代表哪里,最好,自己手画一下大概的情况,接着再进行画图。

 

下面是具体的操作流程:

注意:R语言里面 # 代表的是备注

我出现两个 ## 的备注就是你需要更改的部分

.libPaths()

setwd("F:/02学习/代码/02R代码/数据")#设置工作空间

getwd()#加载工作空间

 

#加载包

library(ggplot2)

library(tidyr) #pivot_longer()

library(dplyr) #mutate()、case_when()、管道符

library(tibble) #rownames_to_column()

library(ggrepel)#含geom_text_repel,作用不让标签重叠

#导入数据

data1<-read.csv("F:/02学习/代码/02R代码/数据/分组柱状图.csv",##这里需要更改工作路径

                as.is = TRUE,header = T,sep =",", fileEncoding='utf-8')

#先看下数据

data1

#采用mutate()设计分组变量里面数据的顺序

data1 <- rbind(data1)%>%#必须写上这个行行合并的函数

 ##这里我列出我的三个分组变量里面数据的顺序

 ##比如下面的年龄,变量名是”年龄“,希望的顺序是"60岁以下","60岁以上"

 ##然后粘贴到函数mutate,如下

 ##年龄:60岁以下/60岁以上

 mutate(年龄 = factor(年龄, levels = c("60岁以下",

                                   "60岁以上"

 )))%>%

 ##同样上面的操作

 ##性别:男/

 mutate(性别 = factor(性别, levels = c(

   "男","女"

 ))) %>%

 ##同样上面的操作

 ##疾病:高血压/糖尿病

 mutate(疾病 = factor(疾病, levels = c(

   "高血压",   "糖尿病"

 )))

 

 

#然后画柱状堆积图,采用geom_bar组件

##x=代表x轴的分组,这里我选年龄

##y=代表数据那一列,这里是  患病率那一列

##fill= 代表每个图里面的柱状堆积块的分组,这里我选  性别,同时这个后面需要创建图例

p1<-ggplot(data = data1, aes(x=年龄, y = 患病率, fill = 性别)) +#这里就是1张图的工作

 geom_bar(stat="identity", color = "black", size =0.55, width = 0.7)+

 facet_wrap(~疾病)+ ##这里设置分页,就是多张图,这里的分组变量我选疾病

 ##为不同类别设置颜色

 ##下面这个是设置柱状堆积块,每一块的颜色,因为前面是用的性别

 ##那么就需要定义 "男" 和 "女"的颜色

 scale_fill_manual(

   values = c("男" = "#bd2628",

               "女" = "#caeaf0"))

#查看

p1


#接着进一步美化

p2<-p1+

 theme_bw()+ #移除灰色背景

 ylab("比例")+ #设置Y轴标题

 scale_y_continuous(labels = seq(0, 100, 25)) + #设置Y轴标签

 guides(fill = guide_legend(keyheight = 1.75, #图例高度

                             keywidth =0.5,  #图例宽度

                             title ="Age", ##这里修改图例标题,前面选择的是性别

                             label.theme =element_text(size=10)))+ #设置标签字体大小

 theme(

   axis.text.x = element_text(angle = 0, hjust = 0.5, vjust = 0.5,

                               colour ="black", size = 8),

   #设置X轴标签字体角度、对齐方向、颜色大小

   axis.text.y = element_text(colour = "black", size = 11), #设置y轴标签字体颜色、大小

   axis.title.x = element_blank(), #移除x轴标题

   strip.background = element_rect(fill = c("#e7e7e7")), #修改分页背景

   strip.text.x = element_text(size = 13), #设置分页标签字体大小

   panel.border = element_rect(linewidth = 1.1), #设置边框粗细

   panel.grid = element_blank() #删除背景网格

 )+

 ##这里需要将  患病率 数据加到图上

 geom_text(aes(label=患病率),

           position=position_stack(vjust=0.5),hjust=0.5,

            size=3)#增加数据到图上

       #position=position_stack()作用是将数据对应到相应的图块部分

#查看

p2

#保存图片

ggsave(filename = "0-2.png",#命名

      plot=p2,#哪张图

      path = "C:/Users/12974/Desktop/百度经验/简书/R语言绘制多个分组簇状柱状图",

      #保存路径

      units="px",

      width = 1200,#宽度

      height = 600 #高度

      )

评论区给出数据和R语言的代码,这里的颜色全是黑色

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容