作者简介

taoyan:R语言中文社区特约作家,伪码农,R语言爱好者,爱开源。

个人博客: https://ytlogos.github.io/

前文传送门:

R语言可视化学习笔记之相关矩阵可视化包ggcorrplot

R语言学习笔记之相关性矩阵分析及其可视化

ggplot2学习笔记系列之利用ggplot2绘制误差棒及显著性标记

ggplot2学习笔记系列之主题(theme)设置

用circlize包绘制circos-plot

利用gganimate可视化R-Ladies发展情况

一篇关于国旗与奥运会奖牌的可视化笔记

利用ggseqlogo绘制seqlogo图

R语言data manipulation学习笔记之创建变量、重命名、数据融合

R语言data manipulation学习笔记之subset data

R语言可视化学习笔记之gganimate包

创建属于自己的调色板

Lesson 01 for Plotting in R for Biologists

Lesson 02&03 for Plotting in R for Biologists

Lesson 04 for Plotting in R for Biologists

Lesson 05 for Plotting in R for Biologists

Lesson 06 for Plotting in R for Biologists

这节课主要两个知识点,一个是图形分面,一个是图形嵌入。

数据加载及清洗

library(tidyverse)

theme_set(theme_gray())

my_data <- read.csv("variants_from_assembly.bed", sep = "\t", quote = '', stringsAsFactors = TRUE, header = FALSE)

names(my_data) <- c("chrom","start","stop","name","size","strand","type","ref.dist","query.dist")

head(my_data)

##   chrom     start      stop name size strand      type ref.dist query.dist

## 1     6 103832058 103832059  SV1  185      + Insertion        0        185

## 2     6 102958468 102958469  SV2  317      + Insertion      -14        303

## 3     6 102741692 102741693  SV3  130      +  Deletion      130          0

## 4     6 102283759 102283760  SV4 1271      + Insertion      -12       1259

## 5     6 101194032 101194033  SV5 2864      + Insertion      -13       2851

## 6     6 101056644 101056645  SV6  265      + Insertion        0        265

my_data <- my_data[my_data$chrom %in% c(seq(1:22), "X","Y"), ]

my_data$chrom <- factor(gsub("chr", "",my_data$chrom), levels = c(seq(1:22),"X","Y"))

my_data$type <- factor(my_data$type, levels = c("Insertion","Deletion","Expansion","Contraction"))

可视化&分面

ggplot(my_data, aes(x=size, fill=type))+geom_density(alpha=0.5)+xlim(0,500)

ggplot(my_data, aes(x=size, fill=type))+geom_density(alpha=0.5)+xlim(0,500)+facet_grid(type~.)

ggplot(my_data, aes(x=size, fill=type))+geom_density(alpha=0.5)+xlim(0,500)+facet_grid(.~type)

分面的规则语法是:

plot+facet_grid(rows~columns)

比如下面的图按染色体为行、type为列进行分面

ggplot(my_data, aes(x=size, fill=type))+geom_density()+xlim(0,500)+facet_grid(chrom~type)

#也可以反过来

ggplot(my_data, aes(x=size, fill=type))+geom_density()+xlim(0,500)+facet_grid(type~chrom)

可以根据自己的喜好以及数据的分布进行分面,有的时候数据不是很适合分面操作,需要慎重,不然越分越乱,无法直观地展示数据。

图形嵌入

#先设置主题

theme_set(theme_gray()+

theme(

axis.line = element_line(size=0.5),

panel.background = element_rect(fill=NA, size = rel(20)),

panel.grid.minor = element_line(colour = NA),

axis.text = element_text(size = 16),

axis.title = element_text(size = 16)

)

)

big_plot <- ggplot(my_data, aes(x=size, fill=type))+

geom_bar(binwidth = 100)+

guides(fill=FALSE)+

scale_y_continuous(expand = c(0,0))

big_plot

small_plot <- ggplot(my_data, aes(x=size, fill=type))+

geom_bar(binwidth = 5)+

xlim(0, 500)+

theme(axis.title = element_blank())+

scale_y_continuous(expand = c(0,0))

small_plot

图形嵌入需要使用包grid

library(grid)

#构造画布,这一步需要不断调整位置

vp <- viewport(width = 0.8, height = 0.7, x=0.65, y=0.65)#分别设置需要嵌入的图形的宽度、高度以及坐标位置

png("insert_plot.png")

print(big_plot)

print(small_plot, vp = vp)

dev.off()

SessionInfo

sessionInfo()

## R version 3.4.3 (2017-11-30)

## Platform: x86_64-w64-mingw32/x64 (64-bit)

## Running under: Windows 10 x64 (build 16299)

##

## Matrix products: default

##

## locale:

## [1] LC_COLLATE=Chinese (Simplified)_China.936

## [2] LC_CTYPE=Chinese (Simplified)_China.936

## [3] LC_MONETARY=Chinese (Simplified)_China.936

## [4] LC_NUMERIC=C

## [5] LC_TIME=Chinese (Simplified)_China.936

##

## attached base packages:

## [1] grid      stats     graphics  grDevices utils     datasets  methods

## [8] base

##

## other attached packages:

## [1] forcats_0.2.0      stringr_1.2.0      dplyr_0.7.4

## [4] purrr_0.2.4        readr_1.1.1        tidyr_0.7.2

## [7] tibble_1.4.2       ggplot2_2.2.1.9000 tidyverse_1.2.1

##

## loaded via a namespace (and not attached):

##  [1] Rcpp_0.12.15      cellranger_1.1.0  pillar_1.1.0

##  [4] compiler_3.4.3    plyr_1.8.4        bindr_0.1

##  [7] tools_3.4.3       digest_0.6.15     lubridate_1.7.1

## [10] jsonlite_1.5      evaluate_0.10.1   nlme_3.1-131

## [13] gtable_0.2.0      lattice_0.20-35   pkgconfig_2.0.1

## [16] rlang_0.1.6       psych_1.7.8       cli_1.0.0

## [19] rstudioapi_0.7    yaml_2.1.16       parallel_3.4.3

## [22] haven_1.1.1       bindrcpp_0.2      xml2_1.2.0

## [25] httr_1.3.1        knitr_1.19        hms_0.4.1

## [28] rprojroot_1.3-2   glue_1.2.0        R6_2.2.2

## [31] readxl_1.0.0      foreign_0.8-69    rmarkdown_1.8

## [34] modelr_0.1.1      reshape2_1.4.3    magrittr_1.5

## [37] backports_1.1.2   scales_0.5.0.9000 htmltools_0.3.6

## [40] rvest_0.3.2       assertthat_0.2.0  mnormt_1.5-5

## [43] colorspace_1.3-2  labeling_0.3      stringi_1.1.6

## [46] lazyeval_0.2.1    munsell_0.4.3     broom_0.4.3

## [49] crayon_1.3.4

 往期精彩内容整理合集 

2017年R语言发展报告(国内)

精心整理 | R语言中文社区历史文章合集(作者篇)

公众号后台回复关键字即可学习

回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享

Lesson 07 for Plotting in R for Biologists相关推荐

  1. 备份恢复Lesson 07. lmproving Your Backups

    备份恢复Lesson 07. lmproving Your Backups 1.数据文件中未分配的块和未使用的块之间的区别在哪? 7-3 2.超大型文件的多片段备份每个片段的输出是备份集还是单个的备份 ...

  2. 系统管理Lesson 07. Managing Database Storage Structures

    系统管理Lesson 07. Managing Database Storage Structures 1. 块内部是如何保存关系型表格数据的? 7-3 2. 表空间的类型有几种?分别说明各自的用途. ...

  3. sql语言实践之自学SQL网(SQL Lesson 0-7)

    sql语言实践之自学SQL网(SQL Lesson 0-7) 这是一个目录 sql语言实践之自学SQL网(SQL Lesson 0-7) SQL Lesson 0: SQL Lesson 0: 让我给 ...

  4. 庄懂技术美术shader学习 Lesson 07

    1.单色环境光 1colambient 2.3ColAmbient 3.3ColAmbient 代码 4.shader forge 投影 5.unity投影调用 6.学习内容整合OldSchool P ...

  5. 数据分析-R语言资料整理

    独家分享--48页PPT解密数据可视化! Excel图表快捷操作小技巧 基于随机森林的分类与回归 R语言制作网页 ggplot2:可视化设计师的神器,了解一下 [译]R包介绍:Online Rando ...

  6. 精心整理 | R语言中文社区历史文章整理(类型篇)

    2018年过去一半了~又到了盘点的时间~感谢长时间来各位好友的关注,我们的成长与你们的爱护是分不开的.更感谢各位老师的投稿,支撑起了我们的这个社区,让更多R语言的爱好者和从业者获得最棒的知识!本文选取 ...

  7. go语言csv包_玩转数据处理120题R语言版本

    点击上方"早起Python",关注并星标公众号 和我一起玩Python 本文为玩转数据处理120题|R语言版本 习题|刘早起,解答|陈熹 大家好,本文为R语言数据处理120题系列完 ...

  8. [小北De编程手记] : Lesson 02 - Selenium For C# 之 核心对象

    从这一篇开始,开始正式的介绍Selenium 以及相关的组件,本文的将讨论如下问题: Selenium基本的概念以及在企业化测试框架中的位置 Selenium核心对象(浏览器驱动) Web Drive ...

  9. 基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理

    研究煤矿隐患数据的挖掘以实现海量隐患数据的有效利用,在分析矿山数据挖掘枝术和煤矿隐患数据特点的基础上,提出煤矿隐患数据挖掘是矿山数字化的重要组成部分,给出煤矿隐患数据挖掘的概念,设计了煤矿隐患数据挖掘 ...

  10. R语言-散布图—plot的函数使用

    plot()的使用 注意:用到的数据(自行下载): 首先,这个就是先help一下,这是新手必须要学会的 会产生一以下代码帮助: | Generic X-Y Plotting Description G ...

最新文章

  1. centos7花里胡哨之终端美化
  2. 致力协同办公oa系统服务器设置,致力协同办公oa系统安装手册新.pdf
  3. 关于解决DevExpress用DevExpress patch工具破解后经常弹出试用框的问题
  4. Python的交互式界面 编写 .
  5. docker1.13.1的安装与卸载及mysql5.5安装实例
  6. git解决 “fatal: Could not read from remote repository.“
  7. 配置百度云CDN加速
  8. 微信小程序-colorUI组件库
  9. Java 输入输出流实验
  10. mysql提示表不存在的解决方法error: 1146: Table doesn‘t exist
  11. DHCP八种报文详解
  12. 2022最新 B站PC端下载视频方法
  13. Backordered even the inventory is sufficient在库存量满足的情况下PICK却BACKORDER
  14. 变限积分求导公式总结_变限积分求导公式是什么?
  15. 聊聊这个倾注10年的开源CRM项目,如何一步步火爆GitHub!
  16. 晶振与匹配电容的总结
  17. 基于Web实现在线绘画拓扑图[GraphEditor]
  18. 【AI面试】hard label与soft label,Label Smoothing Loss 和 Smooth L1 Loss
  19. ARM 安装中文输入法
  20. Contextual Transformer Networks for Visual Recognition论文以及代码解析

热门文章

  1. [个人备忘]SpringMVC+Mybatis+freemarker后台代码生成器自动生成新建表格数据的增删改查处理
  2. 最新 IDEA 2022.1 版本即将发布,骚操作真不少...
  3. Java8中的 Stream 那么彪悍,你知道它的原理是什么吗?
  4. Linux 运维工程师学习成长路线上要经历哪四个阶段?
  5. 聊聊职场中的学历问题
  6. PHP关闭自动过滤,php怎么关闭自动过滤输入和输出
  7. 如何编写 maptalks plugin
  8. jdbc编程遇到文件上传
  9. Arduino学习笔记14
  10. 简单快捷好用的vim配置和终端配置推荐