R语言 当ggplot中的col不是ID时,如何连接ID的geom_points?

f8rj6qna  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(133)

我正在尝试制作ggplot(在Shiny中):我有一些浓度-时间数据需要可视化。用户可以选择为图中的不同组着色,例如,"物种"、"抗体"等。但是,我也希望他们看到每个ID的不同浓度-时间图,因此,我实际上想要实现的是,数据按"物种"着色,但每个个体的数据点是相连的。
我可以给你一个数据集的例子:

dfc <- data.frame(
  ID = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4),
  Conc = c(4, 3.5, 3, 1, 5, 4.5, 4, 2, 3, 2.5, 2, 1, 6, 5.5, 5, 4),
  Time = c(0.15, 1, 2, 3, 0.15, 1, 2, 3, 0.15, 1, 2, 3, 0.15, 1, 2, 3),
  Species= c("Monkey", "Monkey", "Monkey", "Monkey", "Monkey", "Monkey", "Monkey", "Monkey", "Mouse", "Mouse","Mouse","Mouse","Mouse","Mouse","Mouse","Mouse"))

我正在开发一个很大的应用程序,所以我不会用所有的代码来打扰你,但是现在这只是一些简单的事情。我尝试的是这样的:

plot <- ggplot() + geom_point(dfc, mapping=aes(Time, Conc, col = Species)) + geom_line(dfc, mapping=aes("ID"))
plot

很明显,这是行不通的,我也不知道该怎么做。我希望有人能帮助我,因为我觉得答案很简单,但我现在想不出来。

13z8s7eq

13z8s7eq1#

您可以在geom_line中使用group通过ID连接点,如下所示:

library(ggplot2)
plot <- ggplot() + 
  geom_line(dfc, mapping=aes(x = Time, y = Conc, group = ID)) +
  geom_point(dfc, mapping=aes(Time, Conc, col = Species)) 
plot

创建于2023年2月1日,使用reprex v2.0.2

相关问题