R语言R语言初学

R语言绘图(ggplot2、ggpubr)从入门到精通05--柱

2021-05-30  本文已影响0人  生信师兄

本系列课程要求大家有一定的R语言基础,对于完全零基础的同学,建议去听一下师兄的《生信必备技巧之——R语言基础教程》。本课程将从最基本的绘图开始讲解,深入浅出的带大家理解和运用强大而灵活的ggplot2包。内容包括如何利用ggplot2绘制散点图、线图、柱状图、添加注解、修改坐标轴和图例等。

本次课程所用的配套书籍是:《R Graphic Cookbooks》

除了以上的基本图形外,师兄还会给大家讲解箱线图、提琴图、热图、火山图、气泡图、桑基图、PCA图等各种常用的生信图形的绘制,还不赶紧加入收藏夹,跟着师兄慢慢学起来吧!

第二章:柱状图深入探究

#######################
## 分组柱状图
library(gcookbook) # 包内含有需要的数据;
cabbage_exp <- cabbage_exp
ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black")

ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(stat = "identity")  # 默认的position = "stack";

# 此外,除了fill可以指定分组变量,color、linestyle也可以指定;
ggplot(cabbage_exp,aes(Date, Weight, color = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity")

# 请注意,如果类别变量的组合有任何缺失,则该栏将缺失,相邻的栏将扩展以填充该空间。
ce = cabbage_exp[1:5,]

ggplot(ce,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black") +
  scale_fill_brewer(palette = "Pastel1")
# 实际情况下确实存在有一种类别没有对应的y值,此时可以使用NA或者0代替;
ce_NA <- cabbage_exp
ce_NA$Weight[6] <- 0

ggplot(ce_NA,aes(Date, Weight, fill = Cultivar)) + 
  geom_bar(position = "dodge",stat = "identity",color = "black") +
  scale_fill_brewer(palette = "Pastel1")
#######################
## 修改颜色的技巧:

library(gcookbook) 
upc <-subset(uspopchange, rank(Change)>40) 
upc

ggplot(upc, aes(x=Abb, y=Change, fill=Region)) + geom_bar(stat="identity")

# 此示例还使用reorder()函数,将条形按其高度进行排序; 
ggplot(upc, aes(x=reorder(Abb, Change), y=Change, fill = Region)) + 
  geom_bar(stat="identity", color="black") + 
  scale_fill_manual(values=c("#669933", "#FFCC66")) + 
  xlab("State")
#######################
## 正负两极不同的着色:
csub <- subset(climate, Source == "Berkeley" & Year >= 1900) 

# 思路:颜色根据正负数来填充?怎么识别正负数呢?
# 只能新建一个字段:该字段描述了正和负;
# 指定fill为该字段;
csub$pos <- csub$Anomaly10y >= 0 
csub

ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos))+
  geom_bar(stat="identity", position="identity")

# 使用scale_fill_manual()修改颜色;guide = False参数去掉图例
ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) + 
  geom_bar(stat="identity", position="identity",color="black", size=0.25)+ 
  scale_fill_manual(values=c("#CCEEFF", "#FFDDDD"), guide=FALSE)

往期文章

  1. R语言绘图(ggplot2、ggpurb)从入门到精通01--课程介绍
  2. R语言绘图(ggplot2、ggpurb)从入门到精通02--柱状图和直方图
  3. R语言绘图(ggplot2、ggpurb)从入门到精通03--箱式图和函数图像
  4. R语言绘图(ggplot2、ggpurb)从入门到精通04--柱状图美化之调色
上一篇 下一篇

猜你喜欢

热点阅读