R语言绘图练习02--克利夫兰点状图

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

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

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

R语言绘图练习02 -- 克利夫兰点图:

###########
# 柱状图拓展:克里夫兰点图绘制:
library(gcookbook) 

tophit <- tophitters2001[1:25, ]  # 取前25行; 

# 从最基本的散点图出发
ggplot(tophit, aes(x=avg, y=name))+ 
  geom_point()
克利夫兰点图01
# reorder排序一定要熟练:前面柱状图排序讲过:
ggplot(tophit, aes(x=avg, y=reorder(name, avg))) + 
  geom_point(size=3) + # 修改点的大小
  theme_bw() + # 修改背景
  theme(panel.grid.major.x=element_blank(), # 设置纵向网格线为空;
        panel.grid.minor.x =element_blank(),
        # 设置横向网格线为虚线(dashed);
        panel.grid.major.y =element_line(colour="grey60", linetype="dashed")) 
克利夫兰点图02
# 颠倒图形的x轴和y轴;
ggplot(tophit, aes(x=reorder(name,avg), y=avg)) + 
  geom_point(size=3) + 
  theme_bw() +  
  theme(axis.text.x= element_text(angle=60, hjust=1),
        panel.grid.major.y=element_blank(),
        panel.grid.minor.y =element_blank(),
        panel.grid.major.x =element_line(colour="grey60", linetype="dashed"))
克利夫兰点图03
# 按照lg和avg对name进行排序,先按lg排,再按avg排;
nameorder <- tophit$name[order(tophit$lg, tophit$avg)] 
# 将name变量转换为因子,因子水平设定为nameorder;
tophit$name <- factor(tophit$name, levels=nameorder)

## 绘制彩色克利夫兰点图:
ggplot(tophit, aes(x=avg, y=name))+ 
  geom_segment(aes(yend=name), xend=0, colour="grey50")+
  geom_point(size=3, aes(colour=lg))+ # 设置分组变量;
  # limits限定颜色先后顺序;
  scale_colour_brewer(palette="Set1", limits=c("NL", "AL"))+
  theme_bw() + 
  theme(panel.grid.major.y =element_blank(), # 去除横向网格线 
        legend.position=c(1, 0.55), # 设置图例的位置:这里的1指的是与x轴的比例;
        # legend.justification=c(1, 0.5)表示图例右边缘中点;
        # (1,0)表示右下角,(0,1)表示左上角,以此类推;
        legend.justification=c(1, 0.5))
克利夫兰点图04
# 分面绘制:facet_grid()函数:
ggplot(tophit, aes(x=avg, y=name))+ 
  geom_segment(aes(yend=name), xend=0, colour="grey50")+
  geom_point(size=3, aes(colour=lg))+
  # guides去除图例;
  scale_colour_brewer(palette="Set1", limits=c("NL", "AL"),guide = F)+
  theme_bw() + 
  theme(panel.grid.major.y = element_blank()) +
  # 一列多行:lg~.;行数等于lg的种类数目;
  # scales设置每个分块的单位宽度;space设置每个分块的宽度;
  facet_grid(lg~., scales="free_y", space="free_y")
克利夫兰点图05

往期文章

  1. R语言绘图(ggplot2、ggpubr)从入门到精通01--课程介绍
  2. R语言绘图(ggplot2、ggpubr)从入门到精通02--柱状图和直方图
  3. R语言绘图(ggplot2、ggpubr)从入门到精通03--箱式图和函数图像
  4. R语言绘图(ggplot2、ggpubr)从入门到精通04--柱状图美化之调色
  5. R语言绘图(ggplot2、ggpubr)从入门到精通05--柱状图美化之分组修改
  6. R语言绘图(ggplot2、ggpubr)从入门到精通06--柱状图美化之宽度调节
  7. R语言绘图(ggplot2、ggpubr)从入门到精通07--柱状图美化之如何加标签
  8. R语言绘图练习01 -- 各种类型的饼图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容