我有data.table
看起来像这样:
animal_frame
first_and_last animal color
c(1, 2) dog red
c(2, 2) cat red
c(4, 2) dog green
c(3, 1) dog red
c(4, 6) pig green
c(3, 3) cat red
c(4, 2) pig red
animal_frame$num_entry = sample(1:nrow(animal_frame), nrow(animal_frame), replace=FALSE)
为我提供了一个索引列。
此处,x轴为num_entry
,y轴为first_and_last
,因此x轴上每个刻度线产生两个点。根据{{3}}问题:
ggplot(data=animal_frame, aes(x=num_entry, y=first_and_last)) +
geom_line(aes(group=num_entry, color=color)) +
scale_color_manual(values = c("green"="green", "red"="red"))
这很有效。现在,我想根据animal
面对同样的情节,但我希望每个动物都有一个索引列(从1开始)。因此,使用dplyr
,我运行:
animal_frame %<>%
group_by(animal) %>%
mutate(facet_num_entry = sample(1:n(), n(), replace=FALSE)) %>%
ungroup()
现在,我试试:
ggplot(data=animal_frame, aes(x=facet_num_entry, y=first_and_last)) +
geom_line(aes(group=facet_num_entry, color=color)) +
scale_color_manual(values = c("green"="green", "red"="red")) +
facet_grid(animal ~ .)
但是接收 geom_path:每组只包含一个观察。你需要调整群体审美吗?
当我查看数据框时,看起来当我添加num_entry
列时,每个采样数字都有两个条目(我怀疑这是因为first_and_last
中的每个条目这是一个向量。这恰当地给了我两个观察分组 - 因此两个点之间绘制一条垂直线。)另一方面,当我添加facet_num_entry
列时,只有条目。我认为first_and_last
的崩溃可能会发生一些变化?但是我已经搞砸了一段时间并且无法解决这个问题。
此外,如果有更简单的方法来构建我的数据,以便这些垂直线是可能的,请随时提出建议。我找不到像first_and_last
一列向量那样简单的事情。