我有以下数据,我想根据 group1
和 group2
变量创建一个折线图。
dat <- structure(list(group1 = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L),
.Label = c("a", "b"),
class = "factor"),
group2 = c(1L, 2L, 3L, 4L, 1L, 2L, 3L),
val1 = c(10L, 3L, 2L, 7L, 10L, 3L, 2L),
val2 = c(8L, 4L, 8L, 5L, 8L, 4L, 8L),
val3 = c(7L, 5L, 6L, 9L, 7L, 5L, 6L)),
.Names = c("group1", "group2", "val1", "val2", "val3"),
class = "data.frame", row.names = c(NA, -7L))
理想情况下,我希望在每个组内有两个基于
1 个变量我需要基于行变量的折线图(基本上连接 group1
的图表(两个用于级别a
和b
) val1
、val2
和 val3
的三个点)不同的 group2
变量具有不同的颜色。
最佳答案
你的意思是这样的吗:
dat2 <- with(dat, data.frame(group1 = rep(group1, each = 3),
group2 = factor(rep(group2, each = 3)),
values = stack(dat[,3:5])[,1]))
上面的代码将数据重组为更容易与 ggplot 一起使用的格式。 dat
是使用我添加到您的问题中的 dput()
代码定义的。我认为您想要的图可以通过
p <- ggplot(dat2, aes(x = 1:3, y = values, colour = group2)) + geom_line() +
geom_point() + facet_wrap(~ group1, ncol = 2)
p
这给出了
我基本上必须编写一些 x
数据,否则你怎么知道这些点应该位于 x 和 y 坐标空间中的位置?
关于r - 按组划分的折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5737071/