|
发表于 2022-9-30 11:21:53
|
查看: 1353 |
回复: 0
一、文字云图
- library(Rwordseg)
- library(wordcloud2)
- #读入文件
- x <- readLines("zfgz.txt",encoding = 'UTF-8',)
- head(x)
- #开始分词,可以使用system.time()函数计时
- y <- segmentCN(strwords = x,analyzer = "hmm",returnType = "vector")
- #查看数据是否乱码
- y[1:3]
- #system.time(y <- segmentCN(strwords = x,analyzer = "hmm",returnType = "vector"))
- #拆分列表为向量
- y <- unlist(y)
- #过滤数字
- y <- y[!grepl('[0-9]',y)]
- #过滤空白以及单个词
- y <- y[nchar(y)>=2]
- #统计频数
- table(y)
- #排序获得前50个关键字
- top50 <- sort(table(y),decreasing = TRUE)[1:50]
- top50
- #绘图
- wordcloud2(top50)
- #修改形状和配色
- wordcloud2(top50,shape = "star",color = rep_len(c("red","darkred"),length(top50)))
- wordcloud2(top50,shape = "circle")
- wordcloud2(top50,shape = "circos")
- wordcloud2(top50,shape = "R")
复制代码
文字云图
二、相关性图
- library(corrplot)
- corrplot(as.matrix(mtcars),is.corr = F)
- corrplot(as.matrix(mtcars),is.corr = F,type = 'upper')
- corrplot(as.matrix(mtcars),is.corr = F,type = 'upper',method = 'pie')
- M <- cor(mtcars)
- M
- corrplot(M)
- # method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"),
- corrplot(M,method = "ellipse")
- corrplot(M,method = "shade")
- corrplot(M,method = "color")
- corrplot(M,method = "shade")
- corrplot(M,method = "circle")
- corrplot(M,method = "pie",type = "upper")
- corrplot(M,method = "circle",type = "lower")
- corrplot(M, order = "AOE", type = "upper", tl.pos = "d")
复制代码
相关性图
三、曼哈顿图
曼哈顿图(manhattan plot),是一种类似曼哈顿摩天大楼排列的一种展示图。如下图所示。
美国纽约曼哈顿区。manhattan 图即模拟曼哈顿高低起伏的摩天大楼而成,类似一种条形图。在生物和统计学上,做频率统计、突变分布、GWAS 关联分析的时候,经常需要绘制manhattan 图,用来展示每条染色体上 SNP 的分布及频率变化,能够对候选位点的分布和数值一目了然。在 R 中,可以利用 qqman 包来绘制 Manhattan 图,Plink 软件的输出结果可以直接作为输入数据进行绘图。
- library(qqman)
- library(RColorBrewer)
- str(gwasResults)
- head(gwasResults)
- dim(gwasResults)
- manhattan(gwasResults)
- manhattan(gwasResults,col=c('red','green'))
- manhattan(gwasResults,col=brewer.pal(3,'Set1'),genomewideline=6)
- manhattan(gwasResults,col=brewer.pal(3,'Set1'),genomewideline=6,suggestiveline = 3)
- manhattan(gwasResults,col=brewer.pal(3,'Blues'),genomewideline=6,suggestiveline = 3,
- highlight = snpsOfInterest,annotatePval = 0.001)
复制代码
曼哈顿图
- manhattan(gwasResults, annotatePval = 0.001, annotateTop = FALSE)
复制代码
四、树形图
- library(factoextra)
- dd <- dist(mtcars,method = "euclidean")
- dd
- hc <- hclust(dd,method = "ward.D2")
- plot(hc)
- fviz_dend(hc)
- fviz_dend(hc,k=4)
- fviz_dend(hc,k=4,cex = 0.8,k_colors = rainbow(4))
- fviz_dend(hc,k=4,cex = 0.8,k_colors = rainbow(4),color_labels_by_k = FALSE,rect_border = rainbow(4))
- fviz_dend(hc,k=4,horiz = TRUE,type = c("circular"))
- fviz_dend(hc,k=4,horiz = TRUE,type = c("rectangle"))
- fviz_dend(hc,k=4,horiz = TRUE,type = c("phylogenic"))
复制代码
树形图
五、和弦图
和弦图(chord Diagram),是一种显示矩阵中数据间相互关系的可视化方法,节点数据沿圆周径向排列,节点之间使用带权重(有宽度)的弧线链接。和弦图是表示数据之间相互关系的图形方法。节点围绕着圆周分布,点与点之间以弧线彼此连接以显示当中关系,通过每个圆弧的大小比例给每个连接分配数值。此外,还可以通过颜色将数据分类,直观地进行比较和区分。
之前的“基因组圈图”也是一种和弦图,用来展示基因组之间相互关系。
和弦图的输入数据非常简单,主要是一种关联,最简单的分为三列。source 字段、target字段、和 value 字段,也就是从哪里到哪里,然后就是数值。source 和 target 确定连接关系,为字符型,value 确定关系大小,展示连接关系大小。
更复杂的和弦图可以使用 Circos 软件绘制。
- library(circlize)
- library(RColorBrewer)
- help(package="circlize")
- set.seed(999)
- mat<-matrix(sample(18, 18), 3, 6)
- rownames(mat) <- paste0("S", 1:3)
- colnames(mat) <- paste0("E", 1:6)
- df<- data.frame(from = rep(rownames(mat), times = ncol(mat)),
- to = rep(colnames(mat), each = nrow(mat)),
- value = as.vector(mat),
- stringsAsFactors = FALSE)
- #长数据
- chordDiagram(df,grid.col = brewer.pal(9,"Set1")[1:9],link.border="gray")
- circos.clear()
- #宽数据
- chordDiagram(mat,grid.col = brewer.pal(9,"Set1")[1:9],link.border="grey")
- circos.clear()
复制代码
圈图
六、地图
- library(maps)
- library(mapdata)
- library(ggplot2)
- world_map <- map_data("world")
- #查看全部区域
- world_map$region
- unique(world_map$region)
- sort(unique(world_map$region))
- #获取某一地区地图数据
- states_map <- map_data("state")
- #绘制地图,使用geom_polygon()或者geom_path(),再加上地图投影
- ggplot(states_map,aes(x=long,y=lat,group=group))+geom_polygon(fill="white",color="black")+
- coord_map("mercator")
- ggplot(states_map,aes(x=long,y=lat,group=group))+geom_path()+coord_map("mercator")
- #数据映射到地图
- crimes <- data.frame(state=tolower(rownames(USArrests)),USArrests)
- crimes
- states_map <- map_data(map="state")
- crime_map <- merge(states_map,crimes,by.x = "region",by.y = "state")
- library(dplyr)
- dplyr::arrange(crime_map,group,order)
- crime_map <- dplyr::arrange(crime_map,group,order)
- ggplot(crime_map,aes(x=long,y=lat,group=group,fill=Murder))+geom_polygon(color="black")+
- scale_fill_gradient(low = 'cyan',high = 'red') +
- coord_map("mercator")
复制代码
美国谋杀率地图
- #绘制中国地图
- china <- world_map[world_map$region=="China",]
- ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="white",color="black")
- head(china)
- china <- subset(x = world_map,subset = region==c("China","Taiwan"))
- china
- ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="red",color="black")
复制代码
中国地图
- #mapdata包中的worldHires提供高分辨率地图数据
- library(mapdata)
- map('worldHires', col=1:10)
- map('worldHires', 'China')
- map_data(map = "china")
- china <- map_data(map = "china")
- ggplot(china,aes(x=long,y=lat,group=group,fill=region))+geom_polygon(color="black")
- # m_polygon(color="black")
- ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon()
- ggplot(china,aes(x=long,y=lat,group=group))+geom_polygon(fill="red")+coord_map("mercator")
复制代码
高分辨率中国地图
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
|