簡體   English   中英

在ggplot中繪制2個變量以顯示比例/百分比,而不是總和

[英]Plot 2 variables in ggplot to show proportion/percentage, not sum

我想按州繪制對調查問題的回答。 我有數據框

DF <- data.frame(V1 = factor(c("Option 1", "Option 1", "Option 1", "Option 2", "Option 1", "Option 2", "Option 1", "Option 1", "Option 2", NA, "Option 2", "Option 1")),
                  Location = factor(c("California", "Georgia", "Texas", "Texas", "Georgia", "Georgia", "California", "Georgia", "Texas", "Texas", "California", "Georgia")))

由於示例中的喬治亞州代表過多,因此該圖可能難以解釋:

library(tidyr)
library(dplyr)
DF %>%
  filter(!is.na(V1)) %>% 
  ggplot(aes(V1, ..count..)) + 
  geom_bar(aes(fill = Location), position = "dodge") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

有沒有一種方法可以顯示響應的比例/百分比,每個州的響應標准化為1或100?

我不確定要遵循的是100%,但這是一個選項,顯示了不同選項的相對比例,而不是數量:

DF <- data.frame(
  V1 = factor(c("Option 1", "Option 1", "Option 1", "Option 2", "Option 1", "Option 2", "Option 1", "Option 1", "Option 2", NA, "Option 2", "Option 1")),
  Location = factor(c("California", "Georgia", "Texas", "Texas", "Georgia", "Georgia", "California", "Georgia", "Texas", "Texas", "California", "Georgia"))
)

library("tidyverse")
DF <- filter(DF, !is.na(V1))
ggplot(DF, aes(Location, fill = V1)) +
  geom_bar(position = "fill")

(然后,您可能希望將y軸重命名為“比例”或類似名稱)

暫無
暫無

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

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