楼主: nkwinter
1741 2

[有偿编程] 求助ggplot画柱状图 [推广有奖]

  • 0关注
  • 0粉丝

大专生

76%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0.0002
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
551 点
帖子
31
精华
0
在线时间
58 小时
注册时间
2016-3-22
最后登录
2022-3-6

楼主
nkwinter 发表于 2017-4-19 21:54:56 |AI写论文
10论坛币
R语言绘图

timg.jpg (15.57 KB)

timg.jpg

关键词:gplot plot GPL 柱状图 PLUS 柱状图

回帖推荐

ZhandaYang 发表于2楼  查看完整内容

沙发
ZhandaYang 发表于 2017-4-19 21:54:57
  1. # log10函数把等比数列转化为等差数列
  2. # log10(60) + test$plus/600 处理y轴截断,ggplot2本身不支持坐标轴截断
  3. # 上面的函数实际是将0:600 的点拟合到 1.78:2.78上[也就是log10(60):log10(600)]
  4. test$plus_0  <- ifelse(test$plus <600,log10(60) + test$plus/600, log10(test$plus)) -log10(60)
  5. test$minus_0 <- ifelse(test$minus<600,log10(60) + test$minus/600,log10(test$minus))-log10(60)

  6. # 这里假设log10(60)为0
  7. breaks <- (log10(c(600,6000,60000,600000))-log10(60))
  8. labels <- c("600","6000","60000","600000")

  9. g.top  <- ggplot(test) + geom_bar(aes(x=id,y=plus_0),fill="red",stat="identity")+
  10.   # 调整margin位置
  11.   theme_bw() +theme(plot.margin = unit(c(38,5,-28,6),units="points")) +
  12.   # 设置y轴值,标签
  13.   scale_y_continuous(expand = c(0,0),breaks=breaks,labels=labels) +
  14.   # 去除panel网格线
  15.   theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(),panel.grid.minor.y = element_blank())+
  16.   # 删除lable
  17.   labs(y="")
  18. g.down <- ggplot(test) + geom_bar(aes(x=id,y=minus_0),fill="blue",stat="identity")+
  19.   # 调整margin位置,调整y轴lable位置
  20.   theme_bw() +theme(plot.margin = unit(c(1,5,10,3),units="points"),axis.title.y = element_text(hjust =1.5)) +
  21.   # 逆转y轴,设置y轴值,标签
  22.   scale_y_reverse(expand = c(0,0),breaks=breaks,labels=labels) +
  23.   # 去除panel网格线
  24.   theme(panel.grid.major.x = element_blank(),panel.grid.minor.x = element_blank(),panel.grid.minor.y = element_blank())+
  25.   # 设置lable
  26.   labs(y="Reading Count",x="Chromosome") +
  27.   # 设置lable大小,黑体 加粗
  28.   theme(axis.title.y = element_text(face='bold',color='black',size=10)) +
  29.   theme(axis.title.x = element_text(face='bold',color='black',size=10))

  30. grid.arrange(g.top,g.down, heights = c(1/2, 1/2))
复制代码

屏幕快照 2017-04-20 13.07.15.png





屏幕快照 2017-04-20 12.40.14.png (731.51 KB)

屏幕快照 2017-04-20 12.40.14.png

已有 1 人评分论坛币 热心指数 收起 理由
cheetahfly + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

藤椅
nkwinter 发表于 2017-4-21 20:38:41
谢谢,太感谢了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 03:51