R语言绘图包09--双向条图

作者: Hayley笔记 | 来源:发表于2022-09-29 22:36 被阅读0次

R语言绘图包系列:


适合于同时展示不同组样本上调和下调基因数

# 加载R包,
library(ggplot2)
library(reshape2)

# 读取双向柱形图演示数据
df= read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/model/ggplot2/DoublePositionBarPlot/demo.txt")   
head(df)
#          X Up Down
# 1 Pathway1 35   14
# 2 Pathway2 27   10
# 3 Pathway3 58   93
# 4 Pathway4 24   82
# 5 Pathway5  4   71
# 6 Pathway6 58   79

用自己的数据绘图时,把数据整理成上面df的格式即可。

# 把数据转换成ggplot常用的类型(长数据)
df = melt(df)                    # melt出自reshape2包
head(df)                         # 查看转换完成的数据的前几行
#          X variable value
# 1 Pathway1       Up    35
# 2 Pathway2       Up    27
# 3 Pathway3       Up    58
# 4 Pathway4       Up    24
# 5 Pathway5       Up     4
# 6 Pathway6       Up    58

# 绘图
df$X <- factor(df$X ,levels = unique(df$X))
ggplot(df, aes(
  x = X,             
  y = ifelse(variable == "Up", value, -value),  # 判断分组情况,将两个柱子画在0的两侧
  fill = variable)) +
  theme_bw()+
  geom_bar(stat = 'identity')+                                # 画柱形图
  coord_flip()+                                               # x轴与y轴互换位置
  geom_text(                                                  # 在图形上加上数字标签
    aes(label=value,                                          # 标签的值(数据框的第三列)
        # vjust = ifelse(variable == "Up", -0.5, 1),          # 垂直位置。如果没有coord_flip(),则可以取消这行注释
        hjust = ifelse(variable == "Up", -0.4, 1.1)           # 水平位置
    ),
    size=2                                                    # 标签大小
    
  )+
  scale_y_continuous(                                         # 调整y轴
    labels = abs,                                             # 刻度设置为绝对值
    expand = expansion(mult = c(0.1, 0.1)))+                  # 在y轴的两侧,留下一部分的空白位置,防止加标签的时候,显示不全
  scale_x_discrete(limits = rev(levels(df$X)))+               #将x轴倒序,让pathway1在上面
  scale_fill_manual(values = c("#F08080","#9370DB"))+         #更改颜色
  labs(title="Regulated genes", x="Pathways", y="Number of genes")+ #设置标题和横纵坐标标签
  theme(plot.title = element_text(hjust = 0.5))               #标题居中

相关文章

网友评论

    本文标题:R语言绘图包09--双向条图

    本文链接:https://www.haomeiwen.com/subject/kihkartx.html