如何可视化基于 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()

结果是:

我认为我正朝着正确的方向前进,但它远非完美。

  1. 它没有完美地可视化数据。
  2. 我假设提供更多有关变量之间的相关性、联系或关系的信息将是有益的。

你会如何解决这个问题?

看来您可能想要分组的箱线图。如有必要,您可以为此添加颜色或填充

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 )

显然,在我的玩具示例中,标签在这里没有多大意义。