绘制线条,alphas和facet_grids

时间:2017-10-03 18:09:18

标签: ggplot2

我想比较一些非常相似的曲线。在同一轴上绘制它们会非常混乱(因为它们非常接近)但是在不同的轴上绘制它们并不是更好,因为它们几乎无法区分。

我希望为每条曲线执行facet_wrap,并且在刻面曲线为alpha = 0.25时,将不属于该刻面的曲线设置为alpha = 1。< / p>

作为参考,我的数据看起来像

tibble::tribble(
        ~METHOD,    ~mean,            ~lower,            ~upper,             ~width,   ~n,          ~p,
   "ASYMPTOTIC", 0.939365, 0.938319047477885, 0.940410952522115, 0.0445455136166802, 500L,  "p = 0.07",
      "CLOGLOG", 0.946005, 0.945005622467146, 0.946986730333604, 0.0445611267179592, 500L,  "p = 0.07",
        "EXACT", 0.964695, 0.963876926502612,  0.96549956881645, 0.0465924279807666, 500L,  "p = 0.07",
        "LOGIT",  0.95672, 0.955819372211766, 0.957603082736301, 0.0450897716879822, 500L,  "p = 0.07",
       "WILSON",  0.95672,  0.95581938978958, 0.957603065836674,  0.044862320426846, 500L,  "p = 0.07",
   "ASYMPTOTIC",  0.93936, 0.938314007137612, 0.940405992862388, 0.0445885063907574, 499L,  "p = 0.07"
  )

我想要METHOD以及nwidth的关系。

这一切都可能吗?

1 个答案:

答案 0 :(得分:2)

不能对您的示例数据做很多事情(需要更多行),因此我使用一些生成的数据编写了一个示例。基本上,如果我们添加两个分组变量,我们可以将线添加到每个构面并控制alpha,然后使用正常的构面。

基本上,我会添加第二列METHOD2(等于METHOD),并使用它来在每个面上绘制线条。在使用geom_line致电METHOD2时,请务必指定geom_line(data = select(dat, -METHOD), aes(group = METHOD2))

library(tidyverse)

set.seed(123)
dat <- data_frame(x = rnorm(50),
                  y = 2 * x + rnorm(50),
                  g = sample(letters[1:3], 50, T))
dat$g2 <- dat$g

ggplot(dat, aes(x = x, y = y))+
  geom_line(data = select(dat, -g),
            aes(group = g2), alpha = .25)+
  geom_line()+
  facet_wrap(~g)

enter image description here

您案件的具体代码:

dat$METHOD2 <- dat$METHOD

ggplot(dat, aes(x = width, y = n))+
 geom_line(data = select(dat, -METHOD), aes(group = METHOD2), alpha = 0.25)+
 geom_line()