创建 geom_line 图,其中随着 x 轴上的数值增加,y 轴显示累积计数

问题描述 投票:0回答:1

我有以下数据集:

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,依此类推。

我认为这相当简单,但我只是找不到一种方法来完成它。任何帮助,将不胜感激。谢谢你。

r ggplot2 tidyverse
1个回答
0
投票

这是实现所需结果的一种方法,需要使用

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()

© www.soinside.com 2019 - 2024. All rights reserved.