生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

318

主题
发表于 2022-9-30 11:21:53 | 查看: 1357| 回复: 0
一、文字云图
  1. library(Rwordseg)
  2. library(wordcloud2)

  3. #读入文件
  4. x <- readLines("zfgz.txt",encoding = 'UTF-8',)
  5. head(x)
  6. #开始分词,可以使用system.time()函数计时
  7. y <- segmentCN(strwords = x,analyzer = "hmm",returnType = "vector")
  8. #查看数据是否乱码
  9. y[1:3]
  10. #system.time(y <- segmentCN(strwords = x,analyzer = "hmm",returnType = "vector"))
  11. #拆分列表为向量
  12. y <- unlist(y)
  13. #过滤数字
  14. y <- y[!grepl('[0-9]',y)]
  15. #过滤空白以及单个词
  16. y <- y[nchar(y)>=2]
  17. #统计频数
  18. table(y)
  19. #排序获得前50个关键字
  20. top50 <- sort(table(y),decreasing = TRUE)[1:50]
  21. top50
  22. #绘图
  23. wordcloud2(top50)
  24. #修改形状和配色
  25. wordcloud2(top50,shape = "star",color = rep_len(c("red","darkred"),length(top50)))
  26. wordcloud2(top50,shape = "circle")
  27. wordcloud2(top50,shape = "circos")
  28. wordcloud2(top50,shape = "R")
复制代码
      
        文字云图

二、相关性图
  1. library(corrplot)
  2. corrplot(as.matrix(mtcars),is.corr = F)
  3. corrplot(as.matrix(mtcars),is.corr = F,type = 'upper')
  4. corrplot(as.matrix(mtcars),is.corr = F,type = 'upper',method = 'pie')

  5. M <- cor(mtcars)
  6. M
  7. corrplot(M)
  8. # method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"),
  9. corrplot(M,method = "ellipse")
  10. corrplot(M,method = "shade")
  11. corrplot(M,method = "color")
  12. corrplot(M,method = "shade")
  13. corrplot(M,method = "circle")
  14. corrplot(M,method = "pie",type = "upper")
  15. corrplot(M,method = "circle",type = "lower")
  16. corrplot(M, order = "AOE", type = "upper", tl.pos = "d")
复制代码
      
        相关性图

三、曼哈顿图
        曼哈顿图(manhattan plot),是一种类似曼哈顿摩天大楼排列的一种展示图。如下图所示。
        美国纽约曼哈顿区。manhattan 图即模拟曼哈顿高低起伏的摩天大楼而成,类似一种条形图。在生物和统计学上,做频率统计、突变分布、GWAS 关联分析的时候,经常需要绘制manhattan 图,用来展示每条染色体上 SNP 的分布及频率变化,能够对候选位点的分布和数值一目了然。在 R 中,可以利用 qqman 包来绘制 Manhattan 图,Plink 软件的输出结果可以直接作为输入数据进行绘图。

  1. library(qqman)  
  2. library(RColorBrewer)  
  3. str(gwasResults)  
  4. head(gwasResults)  
  5. dim(gwasResults)
  6. manhattan(gwasResults)  
  7. manhattan(gwasResults,col=c('red','green'))  
  8. manhattan(gwasResults,col=brewer.pal(3,'Set1'),genomewideline=6)  
  9. manhattan(gwasResults,col=brewer.pal(3,'Set1'),genomewideline=6,suggestiveline = 3)  
  10. manhattan(gwasResults,col=brewer.pal(3,'Blues'),genomewideline=6,suggestiveline = 3,
  11.           highlight = snpsOfInterest,annotatePval = 0.001)  
复制代码
      
        曼哈顿图

  1. manhattan(gwasResults, annotatePval = 0.001, annotateTop = FALSE)  
复制代码
      

四、树形图
  1. library(factoextra)
  2. dd <- dist(mtcars,method = "euclidean")
  3. dd
  4. hc <- hclust(dd,method = "ward.D2")
  5. plot(hc)
  6. fviz_dend(hc)
  7. fviz_dend(hc,k=4)
  8. fviz_dend(hc,k=4,cex = 0.8,k_colors = rainbow(4))
  9. fviz_dend(hc,k=4,cex = 0.8,k_colors = rainbow(4),color_labels_by_k = FALSE,rect_border = rainbow(4))

  10. fviz_dend(hc,k=4,horiz = TRUE,type = c("circular"))
  11. fviz_dend(hc,k=4,horiz = TRUE,type = c("rectangle"))
  12. fviz_dend(hc,k=4,horiz = TRUE,type = c("phylogenic"))
复制代码
      
        树形图

五、和弦图
        和弦图(chord Diagram),是一种显示矩阵中数据间相互关系的可视化方法,节点数据沿圆周径向排列,节点之间使用带权重(有宽度)的弧线链接。和弦图是表示数据之间相互关系的图形方法。节点围绕着圆周分布,点与点之间以弧线彼此连接以显示当中关系,通过每个圆弧的大小比例给每个连接分配数值。此外,还可以通过颜色将数据分类,直观地进行比较和区分。

        之前的“基因组圈图”也是一种和弦图,用来展示基因组之间相互关系。
        和弦图的输入数据非常简单,主要是一种关联,最简单的分为三列。source 字段、target字段、和 value 字段,也就是从哪里到哪里,然后就是数值。source 和 target 确定连接关系,为字符型,value 确定关系大小,展示连接关系大小。

        更复杂的和弦图可以使用 Circos 软件绘制。

  1. library(circlize)
  2. library(RColorBrewer)
  3. help(package="circlize")
  4. set.seed(999)
  5. mat<-matrix(sample(18, 18), 3, 6)
  6. rownames(mat) <- paste0("S", 1:3)
  7. colnames(mat) <- paste0("E", 1:6)
  8. df<- data.frame(from = rep(rownames(mat), times = ncol(mat)),
  9.                 to = rep(colnames(mat), each = nrow(mat)),
  10.                 value = as.vector(mat),
  11.                 stringsAsFactors = FALSE)
  12. #长数据
  13. chordDiagram(df,grid.col = brewer.pal(9,"Set1")[1:9],link.border="gray")
  14. circos.clear()

  15. #宽数据
  16. chordDiagram(mat,grid.col = brewer.pal(9,"Set1")[1:9],link.border="grey")
  17. circos.clear()
复制代码
      
        圈图

六、地图
  1. library(maps)
  2. library(mapdata)
  3. library(ggplot2)

  4. world_map <- map_data("world")
  5. #查看全部区域
  6. world_map$region
  7. unique(world_map$region)
  8. sort(unique(world_map$region))
  9. #获取某一地区地图数据
  10. states_map <- map_data("state")
  11. #绘制地图,使用geom_polygon()或者geom_path(),再加上地图投影
  12. ggplot(states_map,aes(x=long,y=lat,group=group))+geom_polygon(fill="white",color="black")+
  13.   coord_map("mercator")

  14. ggplot(states_map,aes(x=long,y=lat,group=group))+geom_path()+coord_map("mercator")

  15. #数据映射到地图
  16. crimes <- data.frame(state=tolower(rownames(USArrests)),USArrests)
  17. crimes
  18. states_map <- map_data(map="state")
  19. crime_map <- merge(states_map,crimes,by.x = "region",by.y = "state")
  20. library(dplyr)
  21. dplyr::arrange(crime_map,group,order)
  22. crime_map <-  dplyr::arrange(crime_map,group,order)
  23. ggplot(crime_map,aes(x=long,y=lat,group=group,fill=Murder))+geom_polygon(color="black")+
  24.   scale_fill_gradient(low = 'cyan',high = 'red') +
  25.   coord_map("mercator")
复制代码
      
        美国谋杀率地图

  1. #绘制中国地图
  2. china <- world_map[world_map$region=="China",]
  3. ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="white",color="black")
  4. head(china)
  5. china <- subset(x = world_map,subset = region==c("China","Taiwan"))
  6. china
  7. ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="red",color="black")
复制代码
      
        中国地图
  1. #mapdata包中的worldHires提供高分辨率地图数据
  2. library(mapdata)
  3. map('worldHires', col=1:10)
  4. map('worldHires', 'China')
  5. map_data(map = "china")
  6. china <- map_data(map = "china")
  7. ggplot(china,aes(x=long,y=lat,group=group,fill=region))+geom_polygon(color="black")
  8. # m_polygon(color="black")
  9. ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon()
  10. ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="red")+coord_map("mercator")
复制代码
      
        高分辨率中国地图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-23 16:16 , Processed in 0.107222 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表