使用ggplot2好意思化Dotplot效能

久久国产精品2020盗摄
你的位置:久久国产精品2020盗摄 > 关于我们 > 使用ggplot2好意思化Dotplot效能
使用ggplot2好意思化Dotplot效能
发布日期:2025-12-24 12:03    点击次数:160
前情纲领

图片

况兼基于pbmc3k的数据,使用Dotplot进行可视化和大略调节。这期一谈来了解一下,使用Dotplot参数调节好意思化效能,以及基于ggplot2进行可视化

图片

Dotplot可视化及好意思化

示例数据为pbmc-3k的精通分群后的数据,使用FindAllMarkers查找并获得top5的Marker基因进行可视化

#top5 marker基因获得pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25,  logfc.threshold = 0.25, verbose = FALSE)top5 = pbmc.markers %>% group_by(cluster) %>% top_n(n = 5, wt = avg_log2FC)g = unique(top5$gene)
默许参数绘制及调节好意思化

若是径直使用默许参数,不退换参数展示的情况

DotPlot(pbmc, features = g)

图片

不错看到横坐标中features展示列全部挤在了一谈,未便于阅读。因为Dotplot绘制是基于ggplot2的语法结构的,是以不错调用ggplot2包内部的函数去歪斜展示基因,或者将基因和细胞亚群疏导位置的方式进行调节

1. 退换features的陈设角度

使用RotatedAxis()函数将坐标轴标签旋转,让features列展示的基因,由最运转的平铺变为歪斜,浅易阅读

DotPlot(pbmc, features = g) + RotatedAxis()

图片

不外RotatedAxis()函数内部角度是信服了的,若是需要把柄我方的需求调节角度不错使用theme()函数来调节x轴的具体歪斜角度

图片

DotPlot(pbmc, features = g) +   theme(axis.text.x=element_text(angle=70,hjust = 1))

图片

2.将features和identity疏导位置

使用coord_flip()函数翻转坐标轴,使得图形的布局愈加合理。使用RotatedAxis()函数旋转坐标轴标签,以便更好地展示和阅读。
DotPlot(pbmc, features = g) + coord_flip()+ RotatedAxis()

图片

3. 分组展示Marker基因

使用split函数按照基因列表以及分类列表进行分组,Marker基因将把柄它们所属的群组(cluster)被分组暴露。基于cols函数指定点图的形态使用RotatedAxis函数将x轴标签旋转基于theme函数去调节坐标轴,缔造文本形态和大小、添加边框、调节间距等
DotPlot(pbmc,        features = split(top5$gene, top5$cluster),        cols = c("#ffffff", "firebrick3")) +  RotatedAxis() +   theme(    strip.text.x = element_text(size = 8),    axis.text.x  = element_text(color="black",size=10),    panel.border = element_rect(color = "black"),    panel.spacing = unit(1, "mm"),    axis.title = element_blank(),    axis.text.y = element_blank(),  )

图片

使用ggplot2绘制及好意思化

依然有好多推文基于ggplot2去可视化及好意思化点图:

比如我们生信菜鸟团的Dotplot好意思化——使用ggplot2基于效能好意思化生信益站的Seurat::DotPlot好意思化 (二) ——细胞亚群坐标轴Color Bar精通

那这边小谢就偷个懒,基于前辈们整理好的代码来使用ggplot2绘制marker基因的点图。

1. 索求数据并整理细胞亚群排序
#获得需要的数据p <- DotPlot(pbmc,             features = split(top5$gene, top5$cluster),             cols = c("#ffffff", "firebrick3")) #重新整理细胞亚群的陈设,倒序陈设p$data$feature.groups2 <- factor(p$data$feature.groups,                                  levels = c("Platelet","DC","NK",                                            "FCGR3A+ Mono","CD8 T","B",                                            "Memory CD4 T","CD14+ Mono","Naive CD4 T"))

图片

p

图片

p$data2. 使用ggplot2绘制

ggplot2绘制有关的骨子是需要反复熏陶的,若是莫得R话语基础思要系统学习的话,不错了解一下生物信息学马拉松讲课,最近一期在广州线下,迎接大众来广州汇集!

## 加载R包界说图例形态----library(ggh4x)library(RColorBrewer)strip <- strip_themed(  background_x = elem_list_rect(fill = brewer.pal(9, "Paired")))## 可视化----p1 <- p$data %>%   ggplot(aes(x = features.plot,             y = id)) +   geom_point(aes(size = pct.exp,                  color = avg.exp.scaled)) +   facet_wrap2(~feature.groups2,               scales = "free_x",               strip = strip,               nrow = 1) +   theme_classic() +   RotatedAxis()+  theme(strip.text.x = element_text(size = 8),        axis.text.x = element_text(color="black",size=10),        axis.title = element_blank(),        strip.background = element_rect(color = "white"),        axis.text.y = element_blank()) +   scale_color_gradient(low = "#ffffff",                       high = "firebrick3",                        name = "avg.exp")p1

这么就得到了带有布景形态图例的效能,为了爽气将左边的细胞亚群标签信息使用axis.text.y = element_blank()不进行展示,固然我们也不错调节之后,将y轴的图例加上

图片

3. 整理y轴标签
## 图例信息----library(ggplot2)df <- data.frame(x = 0, y = levels(pbmc), stringsAsFactors = F )df$y <- factor(df$y, levels = df$y )#通过shape聘用我方思要的图例风物p2 <- ggplot(df, aes(x, y, color = factor(y))) +  geom_point(size = 6, shape = 18, show.legend = F) +  scale_color_manual(values = rev(brewer.pal(9, "Paired"))) +  theme_classic() +  scale_x_continuous(expand = c(0,0)) +  theme(    plot.margin = margin(r=0),    axis.title = element_blank(),    axis.text.x = element_blank(),    axis.text.y = element_text(size = 9),    axis.ticks = element_blank(),    axis.line = element_blank()  )p2

聘用了shape=18的实心菱形

图片

然后将整理好的图例和点图拼接到一谈即可

library(cowplot)plot_grid(p2, p1, align = "h", axis="bt", rel_widths = c(1.5, 9))

图片

小结

这期基于ggplot2在Dotplot效能的基础上进行调节,以及索求Dotplot的效能数据,使用ggplot2进行好意思化和可视化

本站仅提供存储干事,通盘骨子均由用户发布,如发现存害或侵权骨子,请点击举报。

Powered by 久久国产精品2020盗摄 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024