R语言可视化(五):密度分布图绘制

05.密度分布图绘制


清除当前环境中的变量

rm(list=ls())

设置工作目录

setwd("C:/Users/Dell/Desktop/R_Plots/05densityplot/")

基础plot函数绘制密度分布图

data <- read.table("demo_density.txt",header = T,row.names = 1,check.names = F)
head(data)
##            Cell-1      Cell-2       Cell-3     Cell-4     Cell-5
## CDK4   -0.7928036  0.52768713  0.000622536  0.3567226  0.9332861
## LMTK3   0.1776205 -0.01606149  5.422113833  1.3070397  0.3558150
## LRRK2  -0.6978762 -0.55561026 -0.360497559 -0.4602367 -0.6807607
## UHMK1   0.8505465 -0.26327991  0.179253031  0.3986467  1.5376638
## EGFR    1.4124162  0.01898751  0.902251622 -0.1781375  0.7818190
## STK32A -0.3880397 -0.59262661 -0.244136510  0.7403647  3.0233484
##            Cell-6      Cell-7     Cell-8     Cell-9     Cell-10    Cell-11
## CDK4   -0.1317285  0.80845194  4.2408848 -0.5402314 -0.98145695 -0.8468989
## LMTK3   0.2769050  0.48315391 -0.2404958  1.3364460  1.14961850  0.3614130
## LRRK2  -0.1694635  1.71570888 -0.5171048  0.1849877  0.81065970 -0.4403344
## UHMK1   0.5052914  0.90236649 -0.1662880  0.6307306  0.39944828  0.8471714
## EGFR    0.2118159 -0.02342718  3.5572960  1.1737836 -0.01236216  0.7697825
## STK32A -0.4339854 -0.63012446  1.1565320  0.4336962  3.84950782 -0.2254257
##           Cell-12     Cell-13     Cell-14    Cell-15    Cell-16    Cell-17
## CDK4   -0.2527959  0.11418958 -0.06649884  0.1492188  1.3512639  0.6458672
## LMTK3  -0.3805189 -0.21354100 -0.47193864 -0.6208587 -0.1636371 -0.4872561
## LRRK2  -0.6210520 -0.08680336 -0.75396622 -0.4019720 -0.5620868 -0.5606446
## UHMK1  -0.4422681  0.44368676  1.55296903  1.1102835 -0.3266981 -0.4052674
## EGFR   -0.6810317 -1.04737539  0.65206550  0.1723167  2.0724335  1.1357094
## STK32A -0.6561068 -0.31195336 -0.39745023  1.0440255 -0.2478169  3.6405243
##            Cell-18    Cell-19    Cell-20    Cell-21    Cell-22    Cell-23
## CDK4    0.60561098  3.2324546  0.3426346 -0.4309123 -0.4059057  0.1995640
## LMTK3  -0.02956969 -0.2320578 -0.6690369 -0.4492417  1.1589304  0.5119620
## LRRK2   0.54230138 -0.3826391 -0.3778535 -0.7134729 -0.3776094  4.3089046
## UHMK1   0.66374718  0.4244700  0.2832219 -4.2439739  0.7183156  1.7473439
## EGFR   -0.16997718  0.8810671 -0.4861590 -1.4518380  0.3712377 -0.5816653
## STK32A -0.59251039  0.5146662 -0.4539699  1.6497376  3.3660203 -0.4305022
##           Cell-24    Cell-25     Cell-26     Cell-27    Cell-28
## CDK4   -1.1225363  2.2103346  0.40512632 -0.08976316  0.4051263
## LMTK3   2.3708342  0.2628939 -0.51312890 -0.50121007  0.4392776
## LRRK2  -0.6381319 -0.5561141 -0.31814576 -0.48958271  1.6773765
## UHMK1  -1.0209272  0.3050285  1.47174613  0.04890228 -0.2552836
## EGFR   -0.1263562  0.2410047  1.06526919  0.97453180  0.6686451
## STK32A -0.2953123  2.8245515 -0.01427511 -0.41047779 -0.2297178
##            Cell-29
## CDK4    0.34001277
## LMTK3  -0.34246051
## LRRK2  -0.68279046
## UHMK1   0.54822457
## EGFR    0.05696489
## STK32A  3.70982862

data <- as.data.frame(t(data))
gene_num <- ncol(data)
# 绘制第一个基因的密度分布图
plot(density(data[,1]), col=rainbow(gene_num)[1], lty=1, 
     xlab = "Expression level", main = names(data)[1])
polygon(density(data[,1]),col=rainbow(gene_num)[1])
image.png
# 绘制所有基因的密度分布图
plot(density(data[,1]), col=rainbow(gene_num)[1], lty=1, 
     xlab = "Expression level", ylim = c(0,1.5), main = "")
# polygon(density(data[,1]),col=rainbow(gene_num)[1])
# 添加其他基因的密度曲线
for (i in seq(2,gene_num)){
  lines(density(data[,i]), col=rainbow(gene_num)[i], lty=i)
  #polygon(density(data[,i]),col=rainbow(gene_num)[i])
}
# 添加图例
legend("topright", inset = 0.02, title = "Gene", names(data), 
       col = rainbow(gene_num), lty = seq(1,gene_num), bg = "gray")
image.png

ggplot2包绘制密度分布图

library(ggplot2)
library(reshape2)
data <- read.table("demo_density.txt",header = T,check.names = F)
data <- melt(data)
## Using gene as id variables
head(data)
##     gene variable      value
## 1   CDK4   Cell-1 -0.7928036
## 2  LMTK3   Cell-1  0.1776205
## 3  LRRK2   Cell-1 -0.6978762
## 4  UHMK1   Cell-1  0.8505465
## 5   EGFR   Cell-1  1.4124162
## 6 STK32A   Cell-1 -0.3880397

# 使用geom_density函数绘制密度分布曲线
ggplot(data,aes(value,fill=gene, color=gene)) + 
  xlab("Expression level") + 
  geom_density(alpha = 0.6) + 
  geom_rug() + theme_bw()
image.png
# 使用geom_line函数绘制密度分布曲线
ggplot(data,aes(value,..density.., color=gene))  +
  geom_line(stat="density") + 
  theme_bw() + facet_wrap(.~gene) +
  theme(axis.title = element_text(size=16),
        axis.text=element_text(size=16))
image.png

ggpubr包绘制密度分布图

data <- read.table("demo_density.txt",header = T,check.names = F)
data <- melt(data)
## Using gene as id variables
head(data)
##     gene variable      value
## 1   CDK4   Cell-1 -0.7928036
## 2  LMTK3   Cell-1  0.1776205
## 3  LRRK2   Cell-1 -0.6978762
## 4  UHMK1   Cell-1  0.8505465
## 5   EGFR   Cell-1  1.4124162
## 6 STK32A   Cell-1 -0.3880397

library(ggpubr)
# 使用ggdensity函数绘制密度分布曲线
ggdensity(data, x = "value", 
          rug = TRUE, xlab = "Expression level",
          color = "gene", fill = "gene")
image.png
# 添加分面
ggdensity(data, x = "value", 
          facet.by = "gene", linetype = "gene",
          rug = TRUE, xlab = "Expression level",
          color = "gene", fill = "gene")
image.png
sessionInfo()
## R version 3.6.0 (2019-04-26)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## 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] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] ggpubr_0.2.1   magrittr_1.5   reshape2_1.4.3 ggplot2_3.2.0 
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.1       knitr_1.23       tidyselect_0.2.5 munsell_0.5.0   
##  [5] colorspace_1.4-1 R6_2.4.0         rlang_0.4.0      plyr_1.8.4      
##  [9] stringr_1.4.0    dplyr_0.8.3      tools_3.6.0      grid_3.6.0      
## [13] gtable_0.3.0     xfun_0.8         withr_2.1.2      htmltools_0.3.6 
## [17] yaml_2.2.0       lazyeval_0.2.2   digest_0.6.20    assertthat_0.2.1
## [21] tibble_2.1.3     ggsignif_0.5.0   crayon_1.3.4     purrr_0.3.2     
## [25] glue_1.3.1       evaluate_0.14    rmarkdown_1.13   labeling_0.3    
## [29] stringi_1.4.3    compiler_3.6.0   pillar_1.4.2     scales_1.0.0    
## [33] pkgconfig_2.0.2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352