r - 如何制作一个图,显示代表年龄的两个时间点(基线和后续)由一条线连接的点(意大利面条图)?
问题描述
R studio(ggplot)问题:我需要在 X 轴上准备一个带有年龄的图,每个主题用一个点表示每个会话(基线和后续),并在它们之间画一条线(意大利面条图)。最好在基线时按年龄对它们进行排序..有人可以帮助我吗?
我想沿 x 轴水平绘制线(从时间点 1 的年龄到 AgeTp2),y 轴可以表示基于基于 AgeTp1 的个人排序列表的一些索引(所以只是一堆水平线,真的)
解决方案
这是一个简单的示例,您可以根据自己的目的进行修改...
df <- data.frame(ID=c("A","A","B","B","C","C"),
age=c(20,25,22,27,21,28))
library(dplyr)
library(ggplot2)
#sort by first age for each ID
df <- df %>% group_by(ID) %>%
mutate(index=min(age)) %>%
ungroup() %>%
mutate(index=rank(index))
ggplot(df,aes(x=age,y=index,colour=ID,group=ID))+
geom_point(size=4)+
geom_line(size=1)
推荐阅读
- java - How to think about this custom view
- php - 如何使用 json 数组更新 mysql?
- java - 做一些 JVM 缓存静态初始化结果,用于常用的库类
- python - 根据条件创建列表列表
- php - 回声 100 - 99.9;在 php 中给出 0.099999999999994
- angular - Angular:如何将输入集中在 ngbDropdown 菜单中?
- java - 如何合并两个sql查询结果?一个查询包含 GROUP BY
- c# - 最多 3 个字母(两种情况)的正则表达式,后跟任意 # 个数字
- php - PHP并行如何将变量传递给线程?
- python - 循环遍历两个列表不起作用