簡體   English   中英

ggplot2:原始數據的條形圖,其中聚集的框架

[英]ggplot2: bar plot of raw data with frame around aggregated

我正在嘗試從原始數據創建堆積的條形圖,其中每組因子變量都可能具有多個條目,並且y值應為所有此類條目的總和。 首先執行普通的geom_bar看起來不錯,但似乎將每個原始條目都繪制為一個相互堆疊的單獨矩形。 看起來不錯,直到您要在條形圖的每個部分周圍畫一個框架為止:

library(tidyverse)
data = tibble(
    age = factor(c(2, 3, 3, 3, 2, 2)),
    value = c(30, 5, 15, 14, 29, 9)
)
ggplot(data, aes(x = "Observation", y = value, fill = age)) +
    geom_bar(stat = "identity", colour = "black")

在此處輸入圖片說明

我真正想要的是圍繞綠松石的一幀和圍繞紅色部分的一個矩形。 如何直接用ggplot做到這一點?

當然,可以手動調用summary:

ggplot(data %>% group_by(age) %>% summarize(value = sum(value)), 
  aes(x = "Observation", y = value, fill = age)) +
  geom_bar(stat = "identity", colour = "black")

在此處輸入圖片說明 但這需要針對每個不同的軸變量選擇進行調整,這很痛苦,因為我正在處理約15個因子維度,並且必須創建數十個圖表,每個軸的因子變量都不同(包括facet_grid )。

因此,理想情況下,ggplot / geom_bar將自動進行匯總,然后繪制匯總值,而不是分別繪制每個單獨的條目。 這可能嗎?

stat_summary()可以stat_summary()處理這些類型的摘要。

您只需指定要使用的幾何圖形和函數即可。 在這里,我們還需要明確地說要堆疊這些條以防止重疊。

ggplot(data, aes(x = "Observation", y = value, fill = age,)) +
  stat_summary(geom = "bar", fun.y = "sum", position = "stack")

在此處輸入圖片說明

暫無
暫無

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

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