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

相关推荐
Java版蜡笔小新37 分钟前
外星人入侵-Python-三
开发语言·python·pygame
此刻我在家里喂猪呢41 分钟前
qt介绍自定义插件 三
开发语言·qt
百锦再2 小时前
《C#上位机开发从门外到门内》3-3:基于USB的设备管理系统
开发语言·单片机·数码相机·c#·上位机·下位机
Channing Lewis2 小时前
Python print() 打印多个变量时,可变对象和不可变对象的区别
开发语言·python
小辉同志3 小时前
C语言之链表
c语言·开发语言·链表
Tiger Z5 小时前
R 语言科研绘图 --- 密度图-汇总
开发语言·程序人生·r语言·贴图
叶雅茗6 小时前
PHP语言的区块链扩展性
开发语言·后端·golang
双叶8367 小时前
(C语言)写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和(递归函数)
c语言·开发语言·数据结构·算法·游戏
“抚琴”的人8 小时前
C#—线程池详解
开发语言·c#
信徒_8 小时前
java 中判断对象是否可以被回收和 GCROOT
java·开发语言·jvm