文章浮现之单细胞VDJ的柱状图

应各位老师的需求复现一篇文章的中的某个图

在这里插入图片描述

具体复现图5的整个思路图,这里没有原始数据,所以我使用虚拟生产的metadata进行画图

在这里插入图片描述
不废话直接上代码,先上python的代码的结果图

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

# 数据(这里使用示例数据,您需要替换为实际数据)
data = {
    'IGHD':  [20, 15, 25, 20, 15, 25, 10, 5, 10, 5, 2, 5, 2, 1, 5],
    'IGHM':  [65, 70, 45, 65, 70, 45, 75, 80, 65, 70, 55, 25, 10, 5, 10],
    'IGHA1': [5, 5, 10, 5, 5, 10, 5, 5, 10, 10, 15, 30, 30, 35, 25],
    'IGHA2': [2, 2, 5, 2, 2, 5, 2, 2, 5, 5, 10, 10, 10, 10, 15],
    'IGHG1': [3, 3, 5, 3, 3, 5, 3, 3, 5, 5, 8, 15, 30, 30, 25],
    'IGHG2': [2, 2, 3, 2, 2, 3, 2, 2, 3, 2, 5, 10, 10, 10, 10],
    'IGHG3': [2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 3, 3, 5, 5, 5],
    'IGHG4': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5]
}

# 设置颜色
colors = ['#ADD8E6', "#4169E1", '#90EE90', '#32CD32', '#FFC0CB', '#FF0000', '#800000', '#FFA500']

# 创建图表
fig, ax = plt.subplots(figsize=(12, 6))

# 绘制堆叠柱状图
bottom = np.zeros(15)
for cell_type, percentage in data.items():
    ax.bar(range(15), percentage, bottom=bottom, width=0.8, label=cell_type, color=colors[list(data.keys()).index(cell_type)])
    bottom += percentage

# 设置x轴标签
x_labels = ['HD', 'EBnor', 'EBpro'] * 5
ax.set_xticks(range(15))
ax.set_xticklabels(x_labels, rotation=45)

# 添加组标签
group_labels = ['Btr', 'Bn', 'Bm', 'AtM', 'ASC']
for i, label in enumerate(group_labels):
    ax.text(i*3 + 1, 105, label, ha='center', fontweight='bold')

# 设置y轴
ax.set_ylim(0, 110)
ax.set_ylabel('Fraction of cells (%)')

# 添加图例
ax.legend(bbox_to_anchor=(1.05, 1), loc='upper left')

# 调整布局
plt.tight_layout()

# 显示图表
plt.show()

貌似R画的更好
在这里插入图片描述

library(ggplot2)
library(dplyr)
library(tidyr)

# 创建示例数据
data <- data.frame(
  Group = rep(c("Btr", "Bn", "Bm", "AtM", "ASC"), each = 3),
  Condition = rep(c("HD", "EBnor", "EBpro"), 5),
  IGHD = c(20,15,25, 20,15,25, 10,5,10, 5,2,5, 2,1,5),
  IGHM = c(65,70,45, 65,70,45, 75,80,65, 70,55,25, 10,5,10),
  IGHA1 = c(5,5,10, 5,5,10, 5,5,10, 10,15,30, 30,35,25),
  IGHA2 = c(2,2,5, 2,2,5, 2,2,5, 5,10,10, 10,10,15),
  IGHG1 = c(3,3,5, 3,3,5, 3,3,5, 5,8,15, 30,30,25),
  IGHG2 = c(2,2,3, 2,2,3, 2,2,3, 2,5,10, 10,10,10),
  IGHG3 = c(2,2,1, 2,2,1, 2,2,1, 2,3,3, 5,5,5),
  IGHG4 = c(1,1,1, 1,1,1, 1,1,1, 1,2,2, 3,4,5)
)

# 转换数据格式并归一化
data_long <- data %>%
  pivot_longer(cols = IGHD:IGHG4, names_to = "CellType", values_to = "Percentage") %>%
  group_by(Group, Condition) %>%
  mutate(Percentage = Percentage / sum(Percentage) * 100) %>%
  ungroup()

# 设置细胞类型的顺序
cell_type_order <- c("IGHG4", "IGHG3", "IGHG2", "IGHG1", "IGHA2", "IGHA1", "IGHM", "IGHD")
data_long$CellType <- factor(data_long$CellType, levels = cell_type_order)

# 创建图表
ggplot(data_long, aes(x = Condition, y = Percentage, fill = CellType)) +
  geom_bar(stat = "identity", position = "stack") +
  facet_grid(~ Group, scales = "free_x", space = "free_x") +
  scale_fill_manual(values = c("#FFA500", "#8B4513", "#FF0000", "#FF69B4", 
                               "#32CD32", "#90EE90", "#4169E1", "#ADD8E6")) +
  labs(y = "Fraction of cells (%)", x = NULL) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    panel.grid.major.x = element_blank(),
    panel.grid.minor.x = element_blank(),
    strip.background = element_blank(),
    strip.text = element_text(size = 12, face = "bold")
  ) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 100))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 交叉编译工具链格式 sqlite3编译示例

1、交叉编译工具链 1.1 定义 交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发工具集&#xff0c;它允许开发者在一个平台上&#xff08;例如高性能的PC或服务器&#xff09;编译生成另一个平台&#xff08;例如嵌入式系统或不同的操作系统和硬件架构&#xff09…

spring boot初始化的几个总结

spring intializr File->New->Project 注意&#xff1a;Spring Initializer中 Java版本选择模块已经不支持1.8了。 Spring Boot 3.x要求 Java最低版本为17&#xff0c; 最新的SpringBoot版本已经要求Java22了 所以&#xff0c;你可以升级Java版本&#xff0c;使用Spri…

自定义指令directive

一、在src目录下创建一个directive文件夹 test.ts文件存放创建的自定义指令&#xff0c;index.ts用于接收所有指令进行统一处理 二、编写自定义指令 // test.ts文件 export default {// 写个自定义指令mounted(el: any, binding: any) {console.log(el, binding, "&qu…

JVM相关总结

JVM的些许问题 1.JVM内存区域划分 2.JVM类加载过程 3.JVM的垃圾回收机制 1.JVM的内存区域划分 一个运行起来的Java进程就是一个JVM虚拟机,需要从操作系统申请一大片内存,就会把内存划分成几个区域,每个区域都有不同的作用 常见的面试题 2.JVM类加载过程 熟练背诵 ! ! !…

Winform使用Flurl调用WebApi的基本用法

微信公众号“CSharp编程大全"的文章《.NET超简单轻量级的HTTP请求组件Flurl》介绍了便捷构建URL及创建HTTP请求的.NET模块Flurl。与HttpClient相比,Flurl封装的更简捷易用&#xff0c;代码量更少。本文学习并测试基于Fluri调用WebApi的基本用法。   基于Fluri调用WebApi…

怎么找python的运行路径

1.命令行中执行&#xff1a; import sys print(sys.argv[0]) 执行后为空。 2. import os os.path.abspath(os.curdir) 3. import os os.getcwd()

LeetCode-213. 打家劫舍 II【数组 动态规划】

LeetCode-213. 打家劫舍 II【数组 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;分三种情况&#xff0c;一&#xff1a;不考虑头尾&#xff1b;二&#xff1a;考虑头不考虑尾&#xff1b;三&#xff1a;考虑尾不考虑头。解题思路二&#xff1a;优化空间解题思路三&am…

如何利用python画出AHP-SWOT的战略四边形(四象限图)

在企业或产业发展的相关论文分析中&#xff0c;常用到AHP-SWOT法进行定量分析&#xff0c;形成判断矩阵后&#xff0c;如何构造整洁的战略四边形是分析的最后一个环节&#xff0c;本文现将相关代码发布如下&#xff1a; import mpl_toolkits.axisartist as axisartist import …

java之命令执行审计思路

1 漏洞原理 因用户输入未过滤或净化不完全&#xff0c;导致Web应用程序接收用户输入&#xff0c;拼接到要执行的系统命令中执行。一旦攻击者可以在目标服务器中执行任意系统命令&#xff0c;就意味着服务器已被非法控制。 2 审计中常用函数 一旦攻击者可以在目标服务器中执行…

【AIGC】AnimateAnyone:AI赋予静态照片生命力的魔法

摘要&#xff1a; 在人工智能技术的不断进步中&#xff0c;AnimateAnyone项目以其创新性和易用性脱颖而出&#xff0c;成为GitHub上备受瞩目的AI项目之一。由阿里巴巴智能计算研究院开发的这一技术&#xff0c;允许用户通过提供一张静态照片&#xff0c;快速生成动态角色。本文…

SpringBoot(一)创建一个简单的SpringBoot工程

Spring框架常用注解简单介绍 SpringMVC常用注解简单介绍 SpringBoot&#xff08;一&#xff09;创建一个简单的SpringBoot工程 SpringBoot&#xff08;二&#xff09;SpringBoot多环境配置 SpringBoot&#xff08;三&#xff09;SpringBoot整合MyBatis SpringBoot&#xff08;四…

docker安装rocketMq5x以上的版本

1.背景 安装RocketMQ 5.x以上的版本主要是因为新版本引入了许多性能优化、新功能以及对已有特性的增强&#xff0c;这些改进可以帮助提升消息队列系统的稳定性和效率。 1.性能提升&#xff1a;RocketMQ 5.x版本通常包括了对消息处理速度、吞吐量和延迟的优化&#xff0c;使得系…

在Linux (Ubuntu 16) 下安装LabVIEW

用户尝试在Ubuntu 16操作系统上安装LabVIEW&#xff0c;但找不到合适的安装文件来支持Ubuntu。已经下载了运行时文件&#xff0c;并尝试将.rpm包转换为.deb包并安装在Ubuntu上。然而&#xff0c;安装完成后&#xff0c;没有在应用程序中看到LabVIEW的图标。 用户希望能够在Ubu…

Spring MVC中的DispatcherServlet、HandlerMapping和ViewResolver的作用

在Spring MVC框架中&#xff0c;DispatcherServlet、HandlerMapping和ViewResolver是核心组件&#xff0c;它们各自承担着不同的角色和任务&#xff1a; 1.DispatcherServlet&#xff1a;它是Spring MVC生命周期中的前端控制器&#xff0c;负责接收HTTP请求并将它们分发给相应的…

【OpenREALM学习笔记:13】pose_estimation.cpp和pose_estimation.h

UML Class Diagram 图中红色框为头文件中所涉及到的函数、变量和结构体 核心函数 PoseEstimation::process() 其核心作用为执行位姿估计的处理流程&#xff0c;并返回是否在此循环中进行了任何处理。 在这个函数中判断并完成地理坐标的初始化或这地理坐标的更新。 这里需要…

论文阅读_基本于文本嵌入的信息提取

英文名&#xff1a;Embedding-based Retrieval with LLM for Effective Agriculture Information Extracting from Unstructured Data 中文名&#xff1a;基于嵌入的检索&#xff0c;LLM 从非结构化数据中提取有效的农业信息 地址: https://arxiv.org/abs/2308.03107 时间&…

昇思25天学习打卡营第04天|数据集 Dataset

数据是深度学习的基础&#xff0c;高质量的数据输入将在整个深度神经网络中起到积极作用。MindSpore提供基于Pipeline的数据引擎&#xff0c;通过数据集&#xff08;Dataset&#xff09;和数据变换&#xff08;Transforms&#xff09;实现高效的数据预处理。其中Dataset是Pipel…

【linux】网络基础(1)

文章目录 网络基本概念网络的定义网络的类型局域网&#xff08;LAN&#xff09;广域网&#xff08;WAN&#xff09; 网络协议OSI七层模型TCP/IP模型TCP/IP模型的结构 网络传输的基本流程计算机与计算机之间的通信计算机的信息处理封装报头 网络基本概念 网络的定义 1.网络是指…

1.搭建篇——帝可得后台管理系统

目录 前言项目搭建一、搭建后端项目1.初始化项目Maven构建 2.MySQL相关导入sql配置信息 3. Redis相关启动配置信息 4.项目运行 二、 搭建前端项目1.初始化项目2.安装依赖3.项目运行 三、问题 前言 提示&#xff1a;本篇讲解 帝可得后台管理系统 项目搭建 项目搭建 一、搭建后…

【2024-热-办公软件】ONLYOFFICE8.1版本桌面编辑器测评

在今日快速发展的数字化办公环境中&#xff0c;选择一个功能全面且高效的办公软件是至关重要的。最近&#xff0c;我有幸体验了ONLYOFFICE 8.1版本的桌面编辑器&#xff0c;这款软件不仅提供了强大的编辑功能&#xff0c;还拥有众多改进&#xff0c;让办公更加流畅和高效。在本…