r - 在 ggplot 中绘制 2 个变量以显示比例/百分比,而不是总和
问题描述
我想按州绘制对调查问题的回答。我有数据框
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 轴重命名为“比例”或类似名称)
推荐阅读
- android - 是否可以在 Java 模块中使用 Android 框架?
- javafx-2 - 在 javafx 的 ComboBox.setConverter 中使用 FormatStringConverter 的问题
- angular - 离子相机预览不可见
- r - 使用 R:当它们包含某些值时,如何删除行?
- arduino - (Serial.available() > 0) 等待用户输入
- jquery - 单击后关闭悬停子菜单而不刷新页面
- json - 将来自 solr 的 json 日期转换为实际日期 (yyyy/mm/dd)
- sql-server - 合并语句以在 Sql Server 中删除/更新/插入数据
- postgresql - 我在哪里可以获得 PostgreSQL 的 ispell 字典?
- python - 自定义 Logger 类 python:如何使其跨类工作?