跟着Cancer Cell 学作图| 配对棒棒糖图(Lollipop chart)

news2025/1/10 22:24:03

854ea349e766dda8cf0a71dd4b26cacb.jpeg

dotplot

本期图片

9e47deb5842e9fbf74fd0350bb6b91b9.png

Doi:https://doi.org/10.1016/j.ccell.2022.02.013

Dotplot showing the association of cell populations with different tissue types (organ or tumor). The x axis represents cell types, and the y axis represents the different factors defining tissue types. Cell types in the upper panel are associated with the tissue type (tumor/adjacent normal). Green lines represent cells enriched in adjacent tissue, and red lines represent cells enriched in tumors. Cell types in the bottom panel are associated with if the tissue is liver or colon. Orange lines represent cells enriched in the colon, and blue lines represent cells enriched in the liver. Only the cell types with p < 0.05 were highlighted.

复现结果

e1e9644d555b223176a4800e9da073dc.png

有些细节上的代码实在懒得调了,大家见谅。可在AI上微调。使用代码时请按需修改,切勿全部套用。

示例数据和代码领取

木舟笔记永久VIP企划

「权益:」

  1. 「木舟笔记所有推文示例数据及代码(「在VIP群里」实时更新」)。

    540272205bbe697defc35f3411edbc21.png
    data+code
  2. 木舟笔记「科研交流群」

「收费:」

「169¥/人」。可添加微信:mzbj0002 转账(或扫描下方二维码),或直接在文末打赏。

点赞在看 本文,分享至朋友圈集赞30个保留30分钟,可优惠20¥

476fee9fc3569ea348cbef0766f594bb.png

绘图

data <- read.csv("mmc2.csv")
head(data)
df_order <- data[order(data$Tumor_Pvalue),] 
df_order <- rbind(
  df_order [1:10,],
  df_order[11:48,] %>% arrange(desc(Organ_Pvalue))
)

df_order$tp = ifelse(df_order$Tumor_Pvalue < 0.001, "p < 0.001",
                     ifelse(df_order$Tumor_Pvalue >= 0.001 & df_order$Tumor_Pvalue < 0.01, "0.001< p < 0.01",
                            ifelse(df_order$Tumor_Pvalue >= 0.01 & df_order$Tumor_Pvalue < 0.05, "0.01 < p < 0.05", "p > 0.05")))

df_order$op = ifelse(df_order$Organ_Pvalue < 0.001, "p < 0.001",
                     ifelse(df_order$Organ_Pvalue >= 0.001 & df_order$Organ_Pvalue < 0.01, "0.001< p < 0.01",
                            ifelse(df_order$Organ_Pvalue >= 0.01 & df_order$Organ_Pvalue < 0.05, "0.01 < p < 0.05", "p > 0.05")))
df_order$tp <-factor(df_order$tp,levels = c("p > 0.05","0.01 < p < 0.05","0.001< p < 0.01","p < 0.001"))
df_order$op <- factor(df_order$op,levels = c("p > 0.05","0.01 < p < 0.05","0.001< p < 0.01","p < 0.001"))
df_order$Enriched <- factor(df_order$Enriched, levels = c('Tumor','Adjacent','Liver','Colon') )
df_order$Celltype <- factor(df_order$Celltype, levels = df_order$Celltype)
head(df_order)
## plot
ggplot(df_order)+
  geom_segment(aes(x = Celltype,xend = Celltype,
                   y = 0,yend = -log10(Tumor_Pvalue),
                   color = Enriched_T),size = 0.7) +
  geom_segment(aes(x = Celltype,xend = Celltype,
                   y = 0,yend = log10(Organ_Pvalue),
                   color = Enriched_O),size = 0.7) +
  scale_color_manual(values = c('#d8ddde','#3f9c49','#ed301a','#faa25c','#3fabd6'))+
  geom_point(
    aes(x=Celltype, y=-log10(Tumor_Pvalue),fill = tp),
    size = 4,shape = 21,color = 'white'
  ) +
  scale_fill_manual(values = c('#d8ddde','#f1bbc0','#db5e64','#b12c20')) +
  geom_point(
    aes(x=Celltype, y=log10(Organ_Pvalue),fill = op),
    size = 4,shape = 21,color = 'white'
  ) +
  geom_hline(yintercept = 0, linetype = "dashed",size = 1) +
  theme_classic()+
  xlab('')+
  theme(axis.text.x = element_text(angle = 45, hjust = 1,size = 8))

ggsave('dotplot.pdf',width = 8,height = 6)

往期内容

  1. 资源汇总 | 2022 木舟笔记原创推文合集(附数据及代码领取方式)

  2. CNS图表复现|生信分析|R绘图 资源分享&讨论群!

  3. R绘图 | 浅谈散点图及其变体的作图逻辑

  4. 这图怎么画| 有点复杂的散点图

  5. 这图怎么画 | 相关分析棒棒糖图

  6. 组学生信| Front Immunol |基于血清蛋白质组早期诊断标志筛选的简单套路

  7. (免费教程+代码领取)|跟着Cell学作图系列合集

  8. Q&A | 如何在论文中画出漂亮的插图?

  9. 跟着 Cell 学作图 | 桑葚图(ggalluvial)

  10. R实战 | Lasso回归模型建立及变量筛选

  11. 跟着 NC 学作图 | 互作网络图进阶(蛋白+富集通路)(Cytoscape)

  12. R实战 | 给聚类加个圈圈(ggunchull)

  13. R实战 | NGS数据时间序列分析(maSigPro)

  14. 跟着 Cell 学作图 | 韦恩图(ggVennDiagram)


1fd4901c397177bad3014696809ac99b.png
木舟笔记矩阵

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对比两个数组中对应位置的两个元素将每次对比的最大值用于构成新的数组np.maximum()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 对比两个数组中对应位置的两个元素 将每次对比的最大值用于构成新的数组 np.maximum() 选择题 以下代码的输出结果为&#xff1f; import numpy as np a1 [1,2,33] a2 [11,2,3] print("…

webshell之无扩展免杀

1.php加密 这里是利用phpjiami网站进行加密&#xff0c;进而达到加密效果 加密前&#xff1a; 查杀效果 可以看到这里D某和某狗都查杀 里用php加密后效果 查杀效果 可以看到这里只有D某会显示加密脚本&#xff0c;而某狗直接绕过 2.dezend加密 可以看到dezend加密的特征还是…

DockerHub 无法访问 - 解决办法

背景 DockerHub 镜像仓库地址 https://hub.docker.com/ 突然就无法访问了,且截至今日(2023/11)还无法访问。 这对我们来说,还是有一些影响的: ● 虽然 DockerHub 页面无法访问,但是还是可以下载镜像的,只是比较慢而已 ● 没法通过界面查询相关镜像,或者维护相关镜像了…

【JavaEE初阶】认识线程、创建线程

1. 认识线程&#xff08;Thread&#xff09; 1.1 概念 1) 线程是什么 一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 举例&#xff1a; 还是回到我们之前的银⾏的例⼦中。之前我们主要描…

算法——双指针

一、背景知识 双指针&#xff08;Two Pointers&#xff09;&#xff1a;指的是在遍历元素的过程中&#xff0c;不是使用单个指针进行访问&#xff0c;而是使用两个指针进行访问&#xff0c;从而达到相应的目的。对撞时针&#xff1a; 两个指针方向相反对撞指针一般用来解决有序…

ts实现合并数组对象中key相同的数据

背景 在平常的业务中&#xff0c;后端同学会返回以下类似的结构数据 // 后端返回的数据结构 [{ id: 1, product_id: 1, pid_name: "Asia", name: "HKG01" },{ id: 2, product_id: 1, pid_name: "Asia", name: "SH01" },{ id: 3, pro…

为Oracle链接服务器使用分布式事务

1 现象 在SQL Server中创建指向Oracle的链接服务器&#xff0c;SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。 2 解决 在Windows平台下&#xff0c;SQL Server依赖分布式事务协调器&#xff08;MSDTC&#xff09;来使用分布式事务&#xff0…

Autocad2020切换经典界面

Autocad2020切换经典界面 1.更改1.1设置另存为 1.更改 1.1设置另存为

CURL踩坑记录

因为项目使用的windows server&#xff0c;且没有安装Postman&#xff0c;所以对于在本地的Postman上执行的请求&#xff0c;要拷贝到服务器执行&#xff0c;只能先转化成为curl命令&#xff0c;操作也很简单&#xff0c;如下&#xff1a; 注意&#xff0c;Postman默认对url包围…

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化:输入延迟、卡顿,大小核调度

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化&#xff1a;输入延迟、卡顿&#xff0c;大小核调度 一、前言二、VMware 的优化2.1 键鼠输入延迟问题的解决2.1.1 搜索内核隔离2.1.2 关闭内存完整性并重启2.1.3 搜索启用或关闭windows功能2.1.4 关闭 hyper-v 和…

凸问题与非凸问题

凸函数&#xff1a;曲线上任意两点连线上的点对应的函数值不大于该两点对应的函数值得连线上的值&#xff0c;例如yx^2&#xff1b; 非凸函数&#xff1a;曲线上任意两点连线上的点对应的函数值既有大于该两点对应的函数值得连线上的值的部分也有小于的部分&#xff0c;例如&am…

生产订单自动下达

文章目录 1 Introduction2 Detail2.1 input MM02 3 Summary 1 Introduction Production order is released order by automation . We can set the material for it . The method is the detial . 2 Detail 2.1 input MM02 please choose work Scheduling please choose S…

ultralytics yolov8 实例分割 训练自有数据集

参考: https://docs.ultralytics.com/datasets/segment/coco/ http://www.bryh.cn/a/613333.html 1、数据下载与转换yolo格式 1)数据集下载: 参考:https://universe.roboflow.com/naumov-igor-segmentation/car-segmetarion 下载的是coco格式,需要转换 2)coco2yolo t…

不到十个例题带你拿下c++双指针算法(leetcode)

移动零问题 https://leetcode.cn/problems/move-zeroes/submissions/ 1.题目解析 必须在原数组进行修改&#xff0c;不可以新建一个数组 非零元素相对顺序不变 2.算法原理 【数组划分】【数组分块】 这一类题会给我们一个数组&#xff0c;让我们划分区间&#xff0c;比如…

[项目管理-33/创业之路-87/管理者与领导者-127]:如何提升自己项目管理的能力和水平

目录 前言&#xff1a; 一、项目经理的角色定位 1.1 项目经理的职责 1.2 不同矩阵类型的项目&#xff0c;项目经理的职责 1.3 项目经理的角色定位 1.4 项目经理的发展路径 二、项目经理项目理论和知识结构 三、软件项目经理在计算机水平的提升 四、项目经理业务知识的…

海康Visionmaster-模块索引:MFC 模块索引异常解决 办法

现象&#xff1a;文件编码格式为 UTF-8 不带签名编码格式&#xff0c;模块索引会出现 模块无法找到异常 更改文件类型为 UTF-8 带签名格式或 vs 默认 GBK2312 编码格式

顺序表基本操作全面解析

文章目录 1.线性表2.顺序表分类2.1 静态顺序表2.2 动态顺序表 3. 顺序表各接口实现1. 定义结构体(Seqlist)2. 结构体初始化(SLInit)3.检查容量 (SLCheckCapacity)4.打印数据 (SLPrintf)5.插入操作5.1 从数据头部插入(SLPushFront)5.2 从数据尾部插入(SLPushBack)5.3 从任意下标…

控制论与科学方法论

《控制论与科学方法论》&#xff0c;真心推荐。 书籍原文电子版PDF&#xff1a;https://pan.quark.cn/s/aa40d59295df&#xff08;分类在学习目录下&#xff09; 备用链接&#xff1a;https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd2sap# 控制论是一种让系统按照我…

C#学习相关系列之Linq用法---group和join相关用法(三)

一、Group用法 在C#的LINQ中&#xff0c;Grou将集合中的元素按照指定的键进行分组。Group方法返回一个IEnumerable<IGrouping<TKey, TElement>>类型的集合&#xff0c;其中TKey表示分组的键类型&#xff0c;TElement表示集合中元素的类型。每个IGrouping<TKey, …