如何可视化基于 R 中另一个变量的两个变量之间的关系?
How to visualise the relationship between two variables based on another one in R?
我有一个 table(基于名为“bikes”的 .csv 文件),其中包含大约 10,000 行,如下所示:
rentals season weatherCondition
12 1 4
6 4 1
21 1 4
4 3 1
5 3 2
19 1 4
13 1 3
10 2 4
8 2 3
.. .. ..
我的任务是根据“weatherCondition”可视化“RENTALS”和“SEASON”之间的关系。
到目前为止,我设法做到了以下几点:
library(tidyverse)
ggplot(data=bikes, mapping = aes(x = season, y = rentals)) +
geom_point(aes(color = weatherCond)) +
theme_bw()
结果是:
我认为我正朝着正确的方向前进,但它远非完美。
- 它没有完美地可视化数据。
- 我假设提供更多有关变量之间的相关性、联系或关系的信息将是有益的。
你会如何解决这个问题?
看来您可能想要分组的箱线图。如有必要,您可以为此添加颜色或填充
library(tidyverse)
bikes %>%
ggplot(aes(x = factor(season), y = rentals, group = factor(weatherCond))) +
geom_boxplot() +
theme_bw()
我会按天气情况和季节来总结数据,因为天气情况并非千差万别。理想情况下,两者都可以命名,如“雨”、“夏天”等。无论哪种情况,以下工作。
数据
dat <- structure(list(rentals = c(12L, 6L, 21L, 4L, 5L, 19L, 13L, 10L,
8L), season = c(1L, 4L, 1L, 3L, 3L, 1L, 1L, 2L, 2L), weatherCondition = c(4L,
1L, 4L, 1L, 2L, 4L, 3L, 4L, 3L)), class = "data.frame", row.names = c(NA,
-9L))
res <- data.frame( aggregate( rentals ~ weatherCondition + season, dat, sum ))
# for numerical data
weatherCondition season rentals
1 3 1 13
2 4 1 52
3 3 2 8
4 4 2 10
5 1 3 4
6 2 3 5
7 1 4 6
# for named conditions and seasons
weatherCondition season rentals
1 rainy fall 6
2 foggy spring 8
3 snowy spring 10
4 rainy summer 4
5 sunny summer 5
6 foggy winter 13
7 snowy winter 52
密谋
barplot( res[,"rentals"], names=apply( res[,1:2], 1, function(x) paste0(x[1],"_",x[2]) ), las=3 )
显然,在我的玩具示例中,标签在这里没有多大意义。
我有一个 table(基于名为“bikes”的 .csv 文件),其中包含大约 10,000 行,如下所示:
rentals season weatherCondition
12 1 4
6 4 1
21 1 4
4 3 1
5 3 2
19 1 4
13 1 3
10 2 4
8 2 3
.. .. ..
我的任务是根据“weatherCondition”可视化“RENTALS”和“SEASON”之间的关系。
到目前为止,我设法做到了以下几点:
library(tidyverse)
ggplot(data=bikes, mapping = aes(x = season, y = rentals)) +
geom_point(aes(color = weatherCond)) +
theme_bw()
结果是:
我认为我正朝着正确的方向前进,但它远非完美。
- 它没有完美地可视化数据。
- 我假设提供更多有关变量之间的相关性、联系或关系的信息将是有益的。
你会如何解决这个问题?
看来您可能想要分组的箱线图。如有必要,您可以为此添加颜色或填充
library(tidyverse)
bikes %>%
ggplot(aes(x = factor(season), y = rentals, group = factor(weatherCond))) +
geom_boxplot() +
theme_bw()
我会按天气情况和季节来总结数据,因为天气情况并非千差万别。理想情况下,两者都可以命名,如“雨”、“夏天”等。无论哪种情况,以下工作。
数据
dat <- structure(list(rentals = c(12L, 6L, 21L, 4L, 5L, 19L, 13L, 10L,
8L), season = c(1L, 4L, 1L, 3L, 3L, 1L, 1L, 2L, 2L), weatherCondition = c(4L,
1L, 4L, 1L, 2L, 4L, 3L, 4L, 3L)), class = "data.frame", row.names = c(NA,
-9L))
res <- data.frame( aggregate( rentals ~ weatherCondition + season, dat, sum ))
# for numerical data
weatherCondition season rentals
1 3 1 13
2 4 1 52
3 3 2 8
4 4 2 10
5 1 3 4
6 2 3 5
7 1 4 6
# for named conditions and seasons
weatherCondition season rentals
1 rainy fall 6
2 foggy spring 8
3 snowy spring 10
4 rainy summer 4
5 sunny summer 5
6 foggy winter 13
7 snowy winter 52
密谋
barplot( res[,"rentals"], names=apply( res[,1:2], 1, function(x) paste0(x[1],"_",x[2]) ), las=3 )
显然,在我的玩具示例中,标签在这里没有多大意义。