(生物信息学)R语言绘图初-中-高级——3-10分文章必备——区组条形图(初级)
发布时间
阅读量:
阅读量

在发表一篇生物信息学文章时,除了要注重研究思路和关注的热点领域外,在视觉呈现方面同样不容忽视的是图表质量的精良程度。本专栏系统性地整理了从R语言绘图入门到进阶技巧——针对3-10分段落的关键图表展示需求而设计——并重点归纳了3-10分段落中常见出现的各类图表类型及其绘制要点。通过深入分析多篇经典文献中的代表性图表案例,并附上了实现这些图表所需的完整R语言代码和图像解读指南。
本专栏将向大家介绍的图片绘制如下:
1. 散点图
2. 箱线图
3.条形图
4.正负条形图
5.区组条形图
6.小提琴图
7.热图
8.Venn图
9.生存曲线
10.森林图
11.TSNE
12.瀑布图
13.ROC曲线
14.点阵图
15.相关系数图
16.饼图
17.树形图
18.气泡图
19.火山图
20.点图
上次绘制了正负条形图:
生物信息学:R语言绘图入门——必修技能:正负条形图

属于生物信息学领域的一篇基础阶段的文章,在博客上获得了较高的评分(3-5分),堪称核心技能的学习指南——个人教学博客
该文深入探讨了如何利用R语言绘制正负条形图,并结合实际案例进行详细分析
下面绘制区组条形图:
比如我们有这样的数据:

通过聚类分析的方法, 我们将样本划分为两个子集, 以研究性别在两个子集中的比例分布情况. 此时可以通过分组条形图来展示结果.
首先读取数据,先看一下数量分布:
setwd("C:\ Users\ ASUS\ Desktop\ tmp")
dir()
cluster <- read.csv("Cluster.csv",header = T,sep = ",")
head(cluster)
data <- as.data.frame(cluster)
head(data)
a <- table(data$Cluster,data$Gender)
a
# > a
#
# FEMALE MALE
# Cluster 1 50 150
# Cluster 2 27 61
AI助手
然后我们要将数量分布变成比例分布:
a <- as.data.frame(a)
a
class(a)
a
names(a)
names(a) <- c("Cluster","Gender","Number")
a
library(plyr)
a
ce <- ddply(a,"Cluster",transform,per = Number/sum(Number)*100)####### a 为输入的数据框;“Cluster” 表示以其为切割变量;transform 转变;后面接公式;输出还是data.frame
ce
# > ce
# Cluster Gender Number per
#1 Cluster 1 FEMALE 50 25.00000
#2 Cluster 1 MALE 150 75.00000
#3 Cluster 2 FEMALE 27 30.68182
#4 Cluster 2 MALE 61 69.31818
AI助手
下面计算一下比例分布的P值,使用卡方检验:
library(reshape2)
ce
zz <- dcast(ce[,c(1,2,4)],ce$Cluster~ce$Gender)
zz
class(zz)
rownames(zz) <- zz$`ce$Cluster1`
zz
zz <- zz[,-1]
zz
chisq.test(zz)
# > chisq.test(zz)
#
# Pearson's Chi-squared test with Yates' continuity correction
#
#data: zz
#X-squared = 0.54554, df = 1, p-value = 0.4601
AI助手
可以看到P值无意义,那我们后续作图时,P值得写成NS
library(ggplot2)
names(ce)[1]
a <- ggplot(ce,aes(x=Cluster,y=per,
fill = Gender))+geom_bar(stat = "identity",
colour = "black")
a
b <- a+scale_fill_manual(values = c("#0176bd","#bc1e5d", "#e8bb20","orangered"))+
theme_classic()
b
c <- b+xlab("")
c
d <- c+ylab("Percentage (%)")+
labs(title = "NS")
d
e <- d+ theme(axis.title.x.bottom = element_text(size = 12),
axis.text.x.bottom = element_text(size = 10,colour = "black"))
e
f <- e+theme(axis.title.y.left = element_text(size = 12),
axis.text.y.left = element_text(size = 10,colour = "black"),
legend.title = element_text(size = 10,colour = "black"),
legend.text = element_text(size = 10,colour = "black"),
title = element_text(size = 16,colour = "black",hjust = 0.5,vjust = 0.5),
plot.title = element_text(size = 16,vjust = 0.5,hjust = 0.5,colour = "black"))+
scale_x_discrete(limits = c("Cluster 1","Cluster 2"))
f
AI助手
图形如下:

导出成PDF即可。
全部评论 (0)
还没有任何评论哟~
