X |
sample2 |
sample1 |
sample3 |
---|---|---|---|
gene1 |
60 |
100 |
80 |
gene3 |
80 |
70 |
80 |
gene2 |
90 |
90 |
95 |
gene4 |
75 |
60 |
80 |
R语言绘制堆积柱形图
什么是簇状柱形图?
如图所示,它们分别是簇状柱形图、堆积柱形图、填充比例柱形图。
顾名思义,
簇状柱形图,每组的数据,每个单独成柱,但是都簇集到一块儿;
堆积柱形图,是每组的数据都堆叠在同一个柱子上;
填充比例柱形图,是在堆积柱形图的基础上,按照比例分布的。
绘图前的数据准备
demo数据可以在https://www.r2omics.cn/res/demodata/groupBar.txt下载。
包含2个维度的数据。每一行是一簇柱子,每一列用不同的颜色图例区分。(当然也可以反过来)
R语言绘制堆积柱形图
# 代码来源:https://www.r2omics.cn/
# 加载R包,没有安装请先安装 install.packages("包名")
library(tidyverse)
# 读取簇状、堆积、填充柱形图数据文件
= read.delim("https://www.r2omics.cn/res/demodata/groupBar.txt") # 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件
df
# 把数据转换成ggplot常用的类型(长数据)
= df %>%
df pivot_longer(-1,names_to = "Sample",values_to = "Value")
# 绘图
ggplot(df, aes(x=factor(X,levels =unique(X)), # 转化为因子,目的是显示顺序与文件顺序相同,否则按照字母顺序排序
y=Value,
fill=factor(Sample,levels = unique(Sample)),
+
))geom_bar(
position="stack",
stat="identity"
+
)# 文字标签
geom_text(aes(label=Value),
position = position_stack(vjust = 0.45),
size=4,
color="white",
vjust=-0.2)+
labs(
x="", # 调整x轴名称
y="", # 调整y轴名称
fill="" # 调整图例名称
+
)scale_fill_brewer(palette = "Set2")+ # 配色方案
theme_bw()