我有一个这种格式的数据框,但是有几百行:
dfex = data.frame(dot = c('A', 'B', 'C', 'D', 'E', 'F'),
group = c('A1', 'A1', 'A1', 'A2', 'A2', 'A2'),
x1 = c(1, 2, 3, 4, 5, 6),
x2 = c(4, 5, 6, 1, 2, 3),
y = c(1, 2, 3, 4, 5, 6))
我想基于group
中的值创建不同的图,因此一个图将仅具有组A1行,而另一个图仅具有组A2行。
在每个图上,x1-y对和x2-y对应该有两条不同的线。最好我也可以列出这些行的相关性。
我对ggplot2很熟悉,所以使用它会很棒。
答案 0 :(得分:2)
以下代码将分为两部分。 facet_wrap会将图形分为两组。由于变量存储在单独的列中,因此我创建了两行。
ggplot(dfex) +
geom_line(mapping = aes(x = x1, y = y, color = "blue")) +
geom_line(mapping = aes(x = x2, y = y, color = "red")) +
facet_wrap(. ~group)
或者另外将数据收集为更整齐的格式,
gather(dfex, "xVar", "x", 3:4) %>%
ggplot() +
geom_line(mapping = aes(x = x, y = y, color = xVar)) +
facet_wrap(. ~group)
答案 1 :(得分:2)