我想比较一些非常相似的曲线。在同一轴上绘制它们会非常混乱(因为它们非常接近)但是在不同的轴上绘制它们并不是更好,因为它们几乎无法区分。
我希望为每条曲线执行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
以及n
与width
的关系。
这一切都可能吗?
答案 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)
您案件的具体代码:
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()