我有以下数据集:
df <- data.frame(
Passwords = c("123er", "234f4", "234r4", "234f6", "234f8","274f4","294f4",
"204f4","23yf4","2l4f4","2u4f4","23of4","734f4","834f4",
"934f4","234w4","267f4"),
Days_Elapsed = c(1,1,1,4,4,5,5,5,7,7,7,7,8,8,8,9,9))
目标是创建一个几何线图,该图显示一条不断向上的线,该线对应于随着“已用天数”变量的增加而注册的密码数量。例如,当 Days_Elapsed 等于 1 时,存在三个密码,这意味着,在图中,在 x 轴值为 1 的情况下,y 轴值为 3。此值 3 对于 Days_Elapsed 2 和3,因为这些天没有注册密码(这意味着该线将是完全水平的)。当经过天数达到值 4 时,该行将增加到 5(因为在第 4 天又注册了两个密码)。第 5 天,还有 3 个密码,因此 Y 中的行将增加到值 8,依此类推。
我认为这相当简单,但我只是找不到一种方法来完成它。任何帮助,将不胜感激。谢谢你。
这是实现所需结果的一种方法,需要使用
dplyr
和 tidyr
进行一些数据整理:
library(dplyr, warn = FALSE)
library(tidyr)
library(ggplot2)
df |>
count(Days_Elapsed) |>
tidyr::complete(
Days_Elapsed = tidyr::full_seq(Days_Elapsed, 1),
fill = list(n = 0)
) |>
mutate(
n = cumsum(n)
) |>
ggplot(aes(Days_Elapsed, n)) +
geom_line()