本系列课程要求大家有一定的R语言基础,对于完全零基础的同学,建议去听一下师兄的《生信必备技巧之——R语言基础教程》。本课程将从最基本的绘图开始讲解,深入浅出的带大家理解和运用强大而灵活的ggplot2包。内容包括如何利用ggplot2绘制散点图、线图、柱状图、添加注解、修改坐标轴和图例等。
本次课程所用的配套书籍是:《R Graphic Cookbooks》
除了以上的基本图形外,师兄还会给大家讲解箱线图、提琴图、热图、火山图、气泡图、桑基图、PCA图等各种常用的生信图形的绘制,还不赶紧加入收藏夹,跟着师兄慢慢学起来吧!
R语言绘图练习01 -- 各种类型的饼图
- 柱状图拓展--饼图
################
library(ggplot2)
# 技巧篇--ggplot2绘制各种饼图:
mpg <- mpg
# 把y轴方向扭曲了,柱子都变成了弯的:
ggplot(mpg, aes(class))+
geom_bar()+
coord_polar(theta = "y")
# 把x轴方向扭曲了,柱子都从同一个中心出发
ggplot(mpg, aes(class))+
geom_bar()+
coord_polar(theta = "x")
# 加上颜色分组:
ggplot(mpg, aes(class))+
geom_bar(aes(fill=drv))+
coord_polar(theta = "y")
# 加上颜色分组:
ggplot(mpg, aes(class))+
geom_bar(aes(fill=drv))+
coord_polar(theta = "x")
# 如何绘制正常的饼图?
ggplot(mpg, aes(1, fill=class))+
geom_bar(width = 0.5)+
coord_polar(theta = "y")
# 加上标签:
ggplot(mpg, aes(1, fill=class))+
geom_bar(width = 0.5)+
coord_polar(theta = "y")+
geom_text(stat="count",aes(label = scales::percent(..count../100)),
size=3, position=position_stack(vjust = 0.5))
########
# 课后作业:如何使用position_stack()修改标签位置呢?
library(gcookbook)
library(plyr)
ce <- arrange(cabbage_exp, Date, Cultivar)
ce<-ddply(ce, "Date", transform, label_y=cumsum(Weight)-0.5*Weight)
ce$Cultivar <- factor(ce$Cultivar,levels = c("c52","c39"))
ggplot(ce, aes(x=Date, y=Weight, fill=Cultivar))+
geom_bar(stat="identity") +
geom_text(aes(y=label_y, label=Weight), vjust=1.5, colour="white")
# 使用position_stack()可以大大节约我们的代码:
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar))+
geom_bar(stat="identity") +
geom_text(aes(label=Weight), position = position_stack(vjust=0.5), colour="white")