R语言 | 上下双向柱状图

1. 效果图

2. 代码

复制代码
# 生成测试数据
dif=data.frame(
  labels=paste0("pathway", 1:3),
  up=c(30,15,1),
  down=c(10,20,40)
)
rownames(dif)=dif$labels
dif

#变形
dif=reshape2::melt(dif)
dif

# 绘图
ggplot(dif, aes(x=labels, y=ifelse(variable=="up", value, -value), fill=variable ) )+
  geom_bar(stat="identity")+
  geom_text(
    aes(label=value,
        vjust=ifelse(variable=="up", -0.4, 1.1),  #调整上下数字的位置坐标
    ),
    size=4 #number font size
  )+
  scale_fill_manual(name="Change", values = c("#ae3137", "#497aa2"),
                    breaks = c("up", "down"), #原始图例标签
                    labels = c("lengthen", "shorten"), #新图例标签
                    )+
  scale_y_continuous(
    labels=abs, #y轴 显示绝对值
    expand=expansion(mult=c(0.1, 0.1))
  )+
  labs(x="", y="Gene number", title="compare result")+
  theme_classic(base_size = 12)+
  theme(
    axis.text.x = element_text(angle = 60, hjust = 1, size=12),
    axis.text.y = element_text(size=12),
  )

3. todo

相关推荐
老华带你飞4 小时前
博物馆展览门户|基于Java博物馆展览门户系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
liulilittle4 小时前
FileStream C++
开发语言·c++·cocoa
点PY5 小时前
C++ 中 std::async 和 std::future 的并发性
java·开发语言·c++
不会代码的小猴5 小时前
C++的第九天笔记
开发语言·c++·笔记
CoderYanger5 小时前
Java SE——12.异常(≠错误)《干货笔记》
java·开发语言
Data_agent5 小时前
1688获得1688店铺所有商品API,python请求示例
java·开发语言·python
一晌小贪欢5 小时前
【Python办公】-图片批量添加文字水印(附代码)
开发语言·python·图片水印·python水印·python添加水印·图片添加水印
Yeats_Liao5 小时前
CANN Samples(十三):Ascend C 算子开发入门
c语言·开发语言
越来越无动于衷5 小时前
Java 实现 WebService(SOAP)联网调用:从原理到实战
java·开发语言
悦悦子a啊6 小时前
将学生管理系统改造为C/S模式 - 开发过程报告
java·开发语言·算法