柱状图用于显示一段时间内的数据变化或显示各项之间的比较情况。在柱形图中,有序或无序变量映射到横坐标,数值型变量映射到纵坐标。本期我们将使用ggplot2中的geom_bar()函数绘制一系列柱状图,包括单数据系列柱状图、多数据系列柱状图、堆积柱状图和百分比堆积柱状图。 library(ggplot2) ## 创建数据 mydata <- data.frame(Cut = c('Fair','Good','Very good','Premium','Ideal'), Price = c(4300, 3800, 3950, 4700, 3500))
## 根据Price, 降序排列 order <- sort(mydata$Price, index.return = T ,decreasing = T) mydata$Cut <- factor(mydata$Cut, levels = mydata$Cut[order$ix])
## width:柱状图宽度,colour:边的颜色,fill:填充调颜色,size:边的粗细,alpha:填充颜色的透明度 ggplot(data = mydata, aes(x = Cut, y = Price))+ geom_bar(stat = 'identity', width = 0.8, colour = 'black', size = 0.25, fill = '#FC4E07', alpha = 1)
二、多数据系列柱状图堆积柱状图 library(tidyverse) ## 创建数据 mydata <- data.frame(Catergory = c('Temporary Stream','Permanent Stream','Lake'), y1996 = c(7.67,4.02,3.95), y1997 = c(5.84,6.45,6.76)) ## 根据1996排序 order <- sort(mydata$y1996, index.return = T, decreasing = T) mydata$Catergory <- factor(mydata$Catergory, levels = mydata$Catergory[order$ix])
## 宽转长 mydata <- pivot_longer(mydata, cols = c(y1996,y1997), names_to = 'year', values_to = 'value')
ggplot(data = mydata, aes(x = Catergory, y = value, fill = year))+ geom_bar(stat = 'identity', width = 0.8, colour = 'black', position = position_dodge(),size = 0.25)
三、堆积柱状图 ## 创建数据 data <- data.frame(species = c(rep("sorgho",3),rep("poacee",3),rep("banana",3),rep("triticum" , 3)), condition = rep(c("normal","stress","Nitrogen"),4), value = abs(rnorm(12,0,15))) ## 排序 cal <- data %>% group_by(species) %>% summarise(sum = sum(value)) %>% arrange(desc(sum)) order <- cal$species data <- data %>% mutate(species = fct_relevel(species,order))
ggplot(data, aes(x=species, y=value, fill=condition)) + geom_bar(position="stack", stat="identity")
四、百分比堆积柱状图 ## 创建数据 data <- data.frame(species = c(rep("sorgho",3),rep("poacee",3),rep("banana",3),rep("triticum",3)), condition = rep(c("normal","stress","Nitrogen"),4), value = abs(rnorm(12,0,15))) ggplot(data, aes(x=species, y=value, fill=condition)) + geom_bar(position="fill", stat="identity")
这就是本期的全部内容啦,你学会了吗?大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话”栏目中提出,我们会尽快回复! 写在最后 “观科研”(点击进一步了解我们吧)是由一群北京协和医学院(清华大学医学部)的博士开创的公众号,初心是让医学科研有迹可循,帮助一线的医学科研人员更快地成长,希望大家支持与关注!
|