R语言绘图练习01 -- 各种类型的饼图

本系列课程要求大家有一定的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")
饼图01
# 把x轴方向扭曲了,柱子都从同一个中心出发
ggplot(mpg, aes(class))+
  geom_bar()+
  coord_polar(theta = "x")
饼图02
# 加上颜色分组:
ggplot(mpg, aes(class))+
  geom_bar(aes(fill=drv))+
  coord_polar(theta = "y")
饼图03
# 加上颜色分组:
ggplot(mpg, aes(class))+
  geom_bar(aes(fill=drv))+
  coord_polar(theta = "x")
饼图04
# 如何绘制正常的饼图?
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))
饼图05
######## 
# 课后作业:如何使用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")

往期文章

  1. R语言绘图(ggplot2、ggpurb)从入门到精通01--课程介绍
  2. R语言绘图(ggplot2、ggpurb)从入门到精通02--柱状图和直方图
  3. R语言绘图(ggplot2、ggpurb)从入门到精通03--箱式图和函数图像
  4. R语言绘图(ggplot2、ggpurb)从入门到精通04--柱状图美化之调色
  5. R语言绘图(ggplot2、ggpurb)从入门到精通05--柱状图美化之分组修改
  6. R语言绘图(ggplot2、ggpurb)从入门到精通06--柱状图美化之宽度调节
  7. R语言绘图从入门到精通07--柱状图美化之如何加标签

你可能感兴趣的:(R语言绘图练习01 -- 各种类型的饼图)