推广

清明节后第一天从画一张图开始

iseeyu2年前 (2024-02-21)推广123

11.png

来吧,这个图的复现不见得简单,不信大家可以尝试一下:

首先来学习一下ggrepel包

用法是geom_text(label)_repel(aes(x,y,label=,….)),text和label的区别我在这里就不多说了,大家都应该知道
我们主要来学习一下参数:

segment.color:连接点与标签的线段的颜色
segment.size:线段的粗细
segment.alpha:线段的透明度
box.padding:文本框周边填充
point.padding:点周围填充
arrow:grid:arrow提供的箭头
force:强制性将重叠文本散开
max.oter:最大迭代次数
nudge_x/y:标签开始位置在坐标轴的移动距离
direction:允许标签的方向,x、y or both

接下来我们要开始这张图的复现了。

首先加载包

library(ggplot)
library(repel)

文件的准备

图片.png

是不是很熟悉??? 就是Seurat的差异分析的结果

为了复现这张图,我们需要对数据进行一定的处理
添加P值标签和label

x$label = ifelse(x$p_val_adj < 0.01 , "adjusted P-val < 0.01","adjusted P-val >= 0.01")
y  =   0.00001
x$gene = ifelse(x$p_val_adj < y , x$gene_name,"")

数据里多了两列label和gene

接下来,我们要画图了

p = ggplot(x,aes(x$cluster,x$avg_logFC,color = x$label,size = 1)) + geom_jitter()

图片.png

添加标签

p = p + geom_text_repel(aes(x$cluster,x$avg_logFC,label = x$gene))

图片.png

gene的标签太多了,我们适当减少一点

y = 0.0000000000001
ggplot(x,aes(x$cluster,x$avg_logFC,color = x$label)) + geom_jitter(size = 0.5) + geom_text_repel(aes(x$cluster,x$avg_logFC,label = x$gene))

图片.png

但是大家发现了没有,gene的标签字体是红色,我们需要黑色

ggplot(x,aes(x$cluster,x$avg_logFC,color = x$label)) + geom_jitter(size = 0.5) + geom_text_repel(aes(x$cluster,x$avg_logFC,label = x$gene,color = 'black'))

图片.png

可见,设置color不听指挥,这是什么原因呢?听过我讲R语言课程的同学应该知道,绘图对象对我们后续的操作产生了干扰,我们需要调整一下

p = ggplot(x) + geom_jitter(aes(x$cluster,x$avg_logFC,color = x$label),size= 0.8) + geom_text_repel(aes(x$cluster,x$avg_logFC,label = x$gene))

图片.png

添加主题

 p = p + theme_classic()

图片.png

我们先把点的颜色调整和图一致

p = p + scale_color_manual(values = c('red','black'))

图片.png

接下来我们要绘制一些细节了

p  = p + labs(x= 'Cluster',y = 'avgerage logFC', color = '')+ theme(axis.line.x = element_blank(),axis.text.x = element_blank(),axis.ticks.x = element_blank())

然后是图例点的大小和位置(根据自己的需求进行调整)

p = p +guides(color = guide_legend(override.aes = list(size = 5))) + theme(legend.position = c(0.9,0.9))

图片.png

然后调节各个文本的大小

p = p+ theme(axis.title = element_text(size = 15,family = 'font'),axis.text = element_text(size = 10),legend.text = element_text(size = 10))

图片.png

接下来就要加柱子了

对数据集新加一列,这部分什么作用,我就不多说了,大家自己琢磨一下吧

x$bar  = 0
for (i in 0:11){
  x[which(x$cluster == as.numeric(i)),][1,11] = 0.4
}
x$bar_1 = 0
for (i in 0:12){
  x[which(x$cluster == as.numeric(i)),][1,12] = -0.4
}

好,添加柱子

p = p+ geom_bar(aes(x$cluster,x$bar,fill = as.factor(x$cluster)),stat= 'identity') +scale_fill_discrete(guide =F) + geom_bar(aes(x$cluster,x$bar_1,fill = as.factor(x$cluster)),stat= 'identity') +scale_fill_discrete(guide =F)

图片.png

好,马上就要大功告成了。
设置一下颜色梯度

defined_cols = c('#e6194b', '#3cb44b', '#ffe119', '#4363d8', '#f58231', '#911eb4', '#46f0f0', '#f032e6', '#bcf60c', '#fabebe', '#008080', '#e6beff', '#9a6324')
p = p + scale_fill_manual(values = defined_cols,guide = F)

图片.png

好,更进一步了,接下来就是添加文本

###创建数据集
x = c(0,1,2,3,4,5,6,7,8,9,10,11,12)
y = c(0,0,0,0,0,0,0,0,0,0,0,0,0)
label = x
zhao = data.frame(x,y,label)
p = p + geom_text(data= zhao,aes(zhao$x,zhao$y,label=zhao$label),size = 10)

图片.png

到此为止,我们大功告成

生活很好,有你更好

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56689.html

相关文章

网站SEO关键词布局技巧。

网站SEO关键词布局技巧。

面对移动互联网的发展,各行各业的发展都非常激烈,因此为了在网络平台上获得更好的流量和更好的转型,很多企业都会选择搜索引擎优化。目前,SEO是大多数企业采用的有效方法之一。它是引擎搜索自然获得网站排名的一种推广方式,可以帮助网站获得自然的搜索流量和关键词排名。 然而,SEO优化排名的方...

诺亚财富陈昆才:2022年财富管理的六大趋势洞察

诺亚财富陈昆才:2022年财富管理的六大趋势洞察

 作者:陈昆才  若干年后回看,2021年注定是非常特殊的一年。  无论是作为财富管理行业供给侧的从业者,还是作为需求侧的投资人,我们在告别2021年的同时,还要一并告别的是各种“刚兑信仰”,告别资产快速增值的时代。一个财富管理的新时代,扑面而来。风险与机遇如影随形,我们需...

电商运营都要做哪些。

电商运营都要做哪些。

运营不是一个人,也不是一个部门,简单来讲,运营一个运筹帷幄的统筹支配系统。就像一台计算机的CPU,就像一个人的大脑,而运营要做的就是调节好客服,推广,美工,库房,售前售后等部门的协调性的所在。 一般可以分为6个体系: 一、转化率 转化率包括的是到达率、注册转化率、订单转化率和支付转化...

网站排名下滑是受哪些因素的影响。

网站排名下滑是受哪些因素的影响。

从事SEO行业的人都十分的清楚,做网站优化出现排名波动都是十分正常的,能够将网站关键词排名保持在首页不掉都已经相当的不容易了。现今很多行业想要抢占首页第一的位置是不可能的,但有时候在做优化的过程中,就会出现排名突然下滑的情况。那么网站排名下滑是受哪些因素的影响? 我们应该考虑一下程序和结...

做好本地化数字营销,让企业营销赢在未来。

做好本地化数字营销,让企业营销赢在未来。

自六月份的《互联网趋势》报告发布以来,界对其议论纷纷,更有不少人对这位互联网女皇产生崇拜心理,而无论是哪一种,都改变不了大家对营销技术以及云技术的话题讨论。在报告中曾提到,“抢先平台的广告=利用后端数据快速完善+前段衡量工具+更多地加载用户希望的广告内容”,对于这一点,很多数字营销人都给予了自己的看...

网站优化师如何判断关键词的相关性。

网站优化师如何判断关键词的相关性。

SEO站长是企业网站整体优化的执行官。每天,他都需要与搜索引擎打交道,优化网站的内容、关键词、内外链接。SEO网站管理员优化网站的依据和方法是根据搜索引擎的特点和用户的需求来确定时间线的。 因为互联网上的大多数用户也通过搜索引擎来表达自己的需求,寻找自己需要的内容,所以SEO站长大多分析搜索引擎的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片