【发布时间】:2018-10-19 18:21:17
【问题描述】:
我有以下数据框,这些数据框来自具有不同参数集的 ODE 模拟,例如
df <- data.frame(t = rep(seq(0,4), 4),
x1 = c(1.2*seq(1,5), 1.3*seq(1,5), 1.4*seq(1,5), 1.5*seq(1,5)),
x2 = c(0.2*seq(1,5), 0.3*seq(1,5), 0.4*seq(1,5), 0.5*seq(1,5)),
a = rep(c(rep(1, 5), rep(2,5)), 2),
b = c(rep(1, 10), rep(2,10))
)
我现在想要一个facet_grid,顶部有 x1 和 x2,右侧有 a 和 b,其中 a 和 b 的值决定线条颜色。
我试过了
df.1 <- df %>%
gather(x, xval, -t, -a, -b) %>%
gather(p, pval, -t, -x, -xval) %>%
distinct()
df.1$pval <- as.factor(df.1$pval)
ggplot(df.1, aes(t, xval)) +
geom_line(aes(colour = pval)) +
facet_grid(p~x)
和
dm.1 <- melt(df[, c("t", "x1", "x2")], id = 't')
colnames(dm.1) <- c("t", "x", "xval")
dm.2 <- melt(df[, c("t", "a", "b")], id = 't')
colnames(dm.2) <- c("t", "p", "pval")
dm <- merge(dm.1, dm.2)
dm$pval <- as.factor(dm$pval)
ggplot(dm, aes(t, xval)) +
geom_line(aes(colour = pval)) +
facet_grid(p~x)
但两者都没有给出预期的结果。任何提示将不胜感激。
编辑:期望的结果是在每个方面有两条线,类似于我的第一个解决方案,但正确的线,即直线而不是产生的之字形线。
【问题讨论】:
-
我正在运行您的代码并进行了一些修改,但您想要的结果是什么?
-
@camille 我已将其添加到帖子的末尾