ggplot2 - 条形图中仅缺少一个条形图

标签 ggplot2 bar-chart

我正在使用 ggplot 制作一个重复的条形图,我几乎得到了我想要的,除了这个我无法修复的错误。

我正在绘制的数据:

      comp     reg counts
1   C0xC12      up    569
2   C0xC12    down    845
3   C0xC24      up    420
4   C0xC24    down    227
5   C0xT12      up   2904
6   C0xT12    down   2989
7   C0xT24      up   2536
8   C0xT24    down   2309
9  C12xC24      up    314
10 C12xC24    down    138
11 C12xT12      up   3006
12 C12xT12    down   3082
13 C12xT24      up   2795
14 C12xT24    down   2577
15 C24xT12      up   1381
16 C24xT12    down   1901
17 C24xT24      up    482
18 C24xT24    down    862
19 T12xT24      up   1732
20 T12xT24    down   1464
21  C0xC12   uppcw      7
22  C0xC12 downpcw     15
23  C0xC24   uppcw     10
24  C0xC24 downpcw      4
25  C0xT12   uppcw     56
26  C0xT12 downpcw     58
27  C0xT24   uppcw     49
28  C0xT24 downpcw     41
29 C12xC24   uppcw      8
30 C12xC24 downpcw      2
31 C12xT12   uppcw     64
32 C12xT12 downpcw     50
33 C12xT24   uppcw     48
34 C12xT24 downpcw     39
35 C24xT12   uppcw     35
36 C24xT12 downpcw     40
37 C24xT24   uppcw     11
38 C24xT24 downpcw     15
39 T12xT24   uppcw     33
40 T12xT24 downpcw     30

我正在运行的代码:

teste <- read.table("teste.txt", sep = "\t", header = TRUE)
ggplot(data = teste, 
       mapping = aes(x = comp, fill = reg,
                     y = ifelse(test = reg == "down" | reg == "downpcw", 
                                yes = -counts, no = counts))) +
  geom_bar(stat = "identity") +
  scale_y_continuous(labels = abs, limits = max(teste$counts) * c(-1,1)) +
  geom_text(aes(label=counts), vjust=0.5, color="black", size=3.0, nudge_y = c(-130,130))+
  labs(y = "DEGs", x = "Groups comparisons") + scale_fill_manual(values=c("#98FB98","#FA8072","#00FF00","#FF0000")) +
  scale_x_discrete(limits=c("T12xT24", "C24xT24", "C24xT12", "C12xT24", "C12xT12", "C12xC24", "C0xT24", "C0xT12", "C0xC24","C0xC12")) +
  coord_flip()

这就是我得到的情节

enter image description here 请注意,“C12xT12”最大的条没有显示,只显示了它的大小 (3082)。

我一直在寻找解决方案,但一无所获,而且我无法单独提出解决方案,所以我想问问以前是否有人处理过这个问题。

最佳答案

问题来自您的scale_y_continuous。 您将其设置为 counts 列的最大值,该列截断了 max 列,因为它恰好位于绘图的极限处。 如果将最大值乘以 1.05 而不是 1,一切都应该有效。
scale_y_continuous 的相应部分更改为:limits = max(teste$counts) * c(-1.05,1.05)

还有一些最佳实践颜色建议:避免使用红绿色组合,因为约 10% 的男性是色盲,无法区分这些颜色的深浅。

关于ggplot2 - 条形图中仅缺少一个条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57359552/

相关文章:

r - 如何在ggplot2中抖动线条

r - ggplot 多线图上缺少图例

r - 无法从 gridExtra 禁用 R markdown 输出(附加注释)

python - 结合条形图和线图的问题(python)

r - 如何使用R调整x轴字体大小?

r - 带有两个测量变量和一个因子的误差线的 ggplot

r - 转换 H :M:S character variable to numeric/continuous scale (R)

javascript - 带有目标线的 d3.js 条形图

python - 如何使用 pandas python 绘制堆积条形图

python - 如何向 Bokeh 条形图添加标签?