如何在ggplot中用倒轴复制这个图?

时间:2018-02-12 18:10:52

标签: r ggplot2

enter image description here

我试图重现我在纸上看到的这个情节。原作者在excel或sigmaplot中做过,他不再记得了。

使用geom_area赢得的完全相同。

这是我到目前为止所得到的:

a %>%
  filter(p.value < 0.05) %>%
  ggplot(., aes(x = time, y = p.value)) +
  geom_area() +
  scale_y_reverse()

enter image description here

但看起来并不一样。我还尝试了geom_ribbongeom_bar,但它们看起来不同。在我想要复制的情节中,数据似乎是反转的,我无法做到。

编辑:oops忘记链接数据&gt;这是dput https://pastebin.com/XWbb7zjt

1 个答案:

答案 0 :(得分:1)

我认为你需要更仔细地研究geom_area实际上做了些什么。它绘制了ymin = 0底部和ymax顶部的条形图,是geom_ribbon的特殊情况,可以更自由地设置ymin。这是我认为你想要的情节。在这里,我们告诉ggplot绘制p值和0.05之间的条形,其中反转的尺度位于图表的底部。这是基于您上面的评论,您希望在您提供的图中有负空间;我真的不知道是什么让这个颠倒的情节更具可读性。

library(tidyverse)
plot_data <- tbl %>%
  filter(p.value < 0.05)
ggplot(plot_data) +
  theme_bw() +
  geom_ribbon(aes(x = time, ymin = p.value, ymax = 0.05)) +
  scale_y_reverse()

enter image description here