簡體   English   中英

ggplot2 中離散變量的累積計數

[英]Culmulative count of discrete variable in ggplot2

這與在 ggplot2 中繪制累積計數有關,但該問題處理的是連續變量(而不是離散變量)。

在這里,我有一個條形圖

set.seed(2021)
dat <- data.frame(x = c(rpois(100, 1), 7, 10))
ggplot(dat) + geom_bar(aes(x, ..count..))

在此處輸入圖像描述

我正在嘗試 plot 累積計數

ggplot(dat) + geom_bar(aes(x, cumsum(..count..)))

在此處輸入圖像描述

當存在“缺失值”時(即當x為 5、6、7、9 時)存在間隙。

有沒有一種快速簡便的方法來制作一個帶有條形空白的條形圖,即我將有 11 個條形? 我可以像往常一樣手動創建一個包含累積計數和 plot 的數據框,但我很好奇是否有更優雅的方法。

您可以在繪圖時將變量轉換為因子。

ggplot(dat) + geom_bar(aes(factor(x), cumsum(..count..)))

我不會稱這是一種“簡單”的方法,但我唯一能想到的方法就是解決你的問題:

  1. 使用例如dplyr::count預先匯總您的數據集

  2. 使用例如tidyr::complete用缺失的類別填充您的數據集(為此,我首先將x轉換為因子)。

  3. Plot 通過geom_col

library(ggplot2)
library(dplyr)
library(tidyr)

set.seed(2021)
dat <- data.frame(x = c(rpois(100, 1), 7, 10))
dat <- dat %>% 
  count(x) %>% 
  mutate(x = factor(x, levels = seq(range(x)[1], range(x)[2], by = 1))) %>% 
  tidyr::complete(x, fill = list(n = 0))

ggplot(dat) + geom_col(aes(x, cumsum(n)))

如果您使用stat_bin而不是geom_bar可能會有所幫助..

ggplot(dat) + stat_bin(aes(x, cumsum(..count..)))

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM