[英]How to: Create a plot for 3 categorical variables and a continuous variable in R?
[英]How to visualize multiple categorical variables vs one continuous variable in R
假設分類變量是,
所有 3 個分類變量(Do_you_smoke、Do_you_drink、Do_you_exercise)都有 2 個類別是或否。現在我想將所有這些分類變量與一個連續變量進行可視化,比如“收入”一次。 我如何使用R 將其可視化?
最好包含一個可重現的數據示例,以便我們確保任何可能的解決方案都適用於您自己的數據結構。 但是,根據您的描述,我們應該能夠重新創建這樣的示例數據集:
set.seed(69)
df <- data.frame(income = runif(1000, 10000, 100000))
df$smoke <- c("Yes", "No")[1 + rbinom(1000, 1, df$income/200000)]
df$drink <- sample(c("Yes", "No"), 1000, TRUE)
df$exercise <- c("No", "Yes")[1 + rbinom(1000, 1, df$income/100000)]
因此,我們的數據框包含四列:收入金額以及三個變量中每一個的“是”或“否”:
head(df)
#> income smoke drink exercise
#> 1 57767.86 Yes No Yes
#> 2 79192.70 Yes Yes Yes
#> 3 68132.37 No No No
#> 4 87873.44 Yes No No
#> 5 43199.45 Yes Yes No
#> 6 88188.83 No Yes Yes
要繪制此圖,我們需要重塑數據。 由於收入都是不同的,我們不能讓每一個人收入水平的百分比,所以我們將不得不cut
收入到箱子里去。 讓我們用 10,000 美元的垃圾箱來做到這一點。 然后我們需要得到每個收入區間中每個變量的“是”的比例。 最后,我們希望將數據輸出為長格式,以便每個 bin 中的每個比例都有自己的行,根據它代表的三個分類變量中的哪一個進行標記。 然后我們可以使用 ggplot 繪圖。
我們需要加載一些庫來幫助我們:
library(dplyr)
library(ggplot2)
library(scales)
library(tidyr)
現在我們的代碼是這樣的:
df %>%
mutate(income_bracket = cut(income, breaks = 1:10 * 10000)) %>%
group_by(income_bracket) %>%
summarise(exercise = length(which(exercise == "Yes"))/n(),
smoke = length(which(smoke == "Yes"))/n(),
drink = length(which(drink == "Yes"))/n()) %>%
mutate(income = paste(dollar(1:9 * 10000),
dollar(2:10 * 10000), sep = " -\n")) %>%
select(-income_bracket) %>%
pivot_longer(1:3) %>%
ggplot(aes(x = income, y = value, group = name, colour = name)) +
geom_line(size = 1.3) +
geom_point(size = 3) +
scale_y_continuous(labels = percent, limits = c(0, 1)) +
labs(title = "Percentage of activities by income",
y = "Percent", x = "Income bracket", color = "Do you...")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.