r - 如何锚定多条线的特定数据点,然后通过选定的点链接它们?
问题描述
我有一个如下所示的数据集,其中包含三个关键变量:ID、年份和值。然后,我使用 ggplot 运行如下图 (X = 1:nrow(df), Y = Value)。不同的组(即ID)有不同的数据点,例如ID=1的组有3个数据点。所以,每组可以有一条线。
我想知道是否有任何与 ggplot 相关的方法来帮助选择多行的特定数据点,然后使用所选的特定点链接它们?例如,如果选择每个组的第一个数据点,则 ID = 1 的 Value = 10 和 ID = 2 的 Value = 6 将被选中,然后可以通过选择的特定数据点链接和绘制这些组。
并且类似的场景也可以设置为选择每组的中间数据点或最后一个数据点。但与此同时,每组(线)的每个数据点都将保留并显示在该图上。非常感谢。
解决方案
也许这样可行:它创建一个变量来存储每组 ID 中的行/观察位置,然后使用该位置信号创建一个新组,该组将通过geom_path()
. 为了帮助可视化,将 id 变量映射到形状(圆形、三角形、正方形)。
library(tidyverse)
df <-
tibble(id = c(1,1,1,2,2,2,3,3,3),
year = sample(x = 2010L:2020L, size = 9, replace = TRUE),
value = sample(x = 1:20, size = 9, replace = TRUE)) %>%
arrange(id, year, -value)
df %>% group_by(id) %>%
mutate(row_position = row_number()) %>%
ungroup() %>%
ggplot(aes(x = year, y = value, group = row_position, colour = as.factor(row_position))) +
geom_point(aes(shape = as.factor(id)), size = 3, alpha = 0.5) +
geom_path()
推荐阅读
- azure-bot-service - 视频卡中视频完成时触发事件 - MS Bot Framework
- python - 在 Python 中的另一个类中运行多个进程后,如何更改类列表中的属性?
- android - Flutter, android project runs into an error while compiling
- node.js - LoopbackJS (express) 中间件 (auth0) 在生产中失败,但在本地环境中工作
- c# - How do I set a property to the last typed symbol in richtextbox in wpf?
- python - Adding menu items to a Tkinter menu in a loop results in the last menu item being returned
- javascript - 模拟意味着在 1 个节点上运行 = 0 发现:Jest 酶
- mysql - 使用 count(*) 和内连接时查询慢
- excel - Change starting point row
- arduino - Arduino code section is not repeating at proper time