首页 > 其他分享 >小提琴图的美化--对半小提琴+箱式

小提琴图的美化--对半小提琴+箱式

时间:2024-04-08 22:13:12浏览次数:19  
标签:小提琴 qq 对半 -- weixin https

效果图

代码

####----小提琴图数据准备----#####
gene <- c("CD3D","CSTB","APOE","EGFR","VEGFA","IL6")
exprs <- data.frame(FetchData(object = c6, vars = c("Anno.chi",gene,"group")) )
exprs$Proj <- "Seurat"
# exprs$group <- factor(exprs$group,levels=c('Control',''))

########----对半小提琴图-----#############
library(Seurat)
library(tidyverse)
#devtools::install_github('erocoar/gghalves')
library(gghalves)
library(gridExtra)


png(paste0( "Vlnplot-c6_IL6-美化1-半小提琴.png"),    width = 4, height = 4, units = "in", res = 400)
p <- ggplot() +
  geom_half_violin(data = exprs[exprs$group == 'Control',],
                   aes(x = Proj, y = IL6, fill = group),
                   color = 'black',
                   scale = 'width') 

#在上图基础上叠加右边,绘图逻辑相同
p1 <- p +
  geom_half_violin(data = exprs[exprs$group == 'Suicide',],
                   aes(x = Proj, y = IL6, fill = group),
                   color = 'black',
                   scale = 'width',
                   side = 'r')+
theme_bw() +
  theme(
    panel.grid = element_blank()) +
  scale_fill_manual(values = c("#E39A35","#68A180")) +
  labs(x = "", y = 'Expression Level',title="IL6")
print(p1)
dev.off()



###################
library(ggpubr) #用于统计分析添加统计指标

png(paste0( "Vlnplot-c6_IL6-美化2-箱式图.png"),    width = 4, height = 4, units = "in", res = 400)
p <- ggviolin(exprs, x = "group", # 分组列
              y = "IL6", # 基因列
              fill = "group", #按分组填充颜色
              alpha = 1,#透明图 0-1
              width = 0.5, #宽度
              legend = "top",legend.title = "IL6",#legend及位置
              font.legend = c(12, "bold", "black"),
              ylim=c(3, 6), #y轴长度#####(根据具体情况可更改)
              ylab="Normalized Expression", xlab=FALSE, #xy轴标签,去掉X轴标签
              font.y = 16,#xy轴标题大小
              x.text.angle = 45, y.text.angle = 90,#xy轴标题角度
              font.tickslab = c(15,"plain","black"), #xy轴刻度大小/样式/颜色
              add = "boxplot", #添加图 "dotplot", "jitter", "boxplot", "point"
              add.params = list(fill = "white", #填充颜色 白色
                                width = 0.1,#宽度
                                linetype = 1)#线型
) 
print(p)
dev.off()

原始学习链接:
https://mp.weixin.qq.com/s/K_56BmYLw9GazBk541r6DA
https://mp.weixin.qq.com/s/AhkW9Rm01LaRYiNj_dn7-A

标签:小提琴,qq,对半,--,weixin,https
From: https://www.cnblogs.com/corrschi/p/18122766

相关文章

  • node.js安装
    访问Node.js官网(https://nodejs.org),网页打开后,在页面中直接可以看见一个Node.js软件下载入口Node.js官网会自动根据当前设备的系统类型推荐需要下载的软件,选择当前新的稳定版本进行下载即可。下载完成后,按照普通软件的方式来对其进行按照。1、点击next2、勾选内容并点击nex......
  • 网页手动下载GBIF物种分布数据
    GBIF的全称是GlobalBiodiversityInformationFacility,全球最大的生物多样性数据共享平台。由于网络原因,使用R语言调用API批量下载或处理数据记录时,可能会由于延迟而报错。因此有时候,也有必要在网页上“所见即所得”地手动下载数据,等待邮件的数据下载通知。例如,为保证授课质量,我......
  • C++中lambda表达式介绍
    c++在c++11标准中引入了lambda表达式,一般用于定义匿名函数,使得代码更加灵活简洁。lambda表达式与普通函数类似,也有参数列表、返回值类型和函数体,只是它的定义方式更简洁,并且可以在函数内部定义。什么是Lambda表达式最常见的lambda的表达式写法如下autoplus=[](intv1,int......
  • 团队开发日记第一篇——我们的团队成立啦!
    今天是我们团队正式成立的日子,我们的第一次团队合作项目就是在参加2024腾讯公益赛的基础上开发一款与生态环保相关的小项目——生态碳足迹计算器。项目设计的目的是为了提高大众生态环保意识,增强大众在生活和生产中对环境生态的认识,通过碳足迹计算器来了解生态相关新闻、政策、知......
  • 总结
    9.Throw和Throws的区别?Throw用来抛出一个具体的异常类型。Throws用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用就抛给谁。10.进程和线程的区别?进程是系统进行资源分配和调度的最小单位线程是CPU调度和分派的基本单位一个进程包含一个或多个线程进程......
  • 进阶版Python编程题(2)洛谷(小学数学N合一)
    问题1请输出 IloveLuogu!问题2这里有 10 个苹果,小A拿走了 2 个,Uim拿走了 4 个,小B拿走剩下的所有的苹果。我们想知道:小A和Uim两个人一共拿走多少苹果?小B能拿走多少苹果?现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。问题3现在有 1......
  • SpringBoot通过token实现用户互踢功能
    认识token所谓token,既用户能够在一定时间内证明自己身份的一长串字符串。正常的使用流程为:用户第一次登入——》服务器为该用户签发一份token——》进行其他服务请求时携带上token——》服务器判断此token在有效期内——》放行此次请求。在上述过程中,用户只有在请求特定的接......
  • 别再抱怨学鸿蒙没方向了! 这鸿蒙全栈(南北双向)开发学习路线收藏好!
    在互联网技术不断发展的现在,鸿蒙操作系统的出现标志着是能技术领域的一次重大突破,鸿蒙作为华为推出的一代操作系统,鸿蒙不仅达代表了自主创新的力量,还因为独特的分布式架构和全场景适配能力而备受关注。随着鸿蒙生态的不断完善、壮大,学习鸿蒙开发技术不仅对IT专业人士来说是......
  • YOLO报错AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common
    解决方案:model/common.py里面去找到这个SPPF的类,把它拷过来到Tags5的model/common.py里面,这样你的代码就也有这个类了,还要引入一个warnings包1、把importwarnings放在上面去:importwarnings2、把SPPF类的代码复制到common.py中classSPPF(nn.Module):#SpatialP......
  • 进阶版Python编程题(1)洛谷
    题目描述学校和yyy的家之间的距离为 s千米,而yyy以 v 米每分钟的速度匀速走向学校。在上学的路上,yyy还要额外花费 10 分钟的时间进行垃圾分类。学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy最晚能什么时候出门。由于路途遥远,yyy可能不得不提前一......