You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何基于weatherCondition可视化rentals与season的关联关系

现有代码的核心问题

  • 变量名不匹配:数据集里的天气字段是weatherCondition,你代码中写的weatherCond会导致映射错误
  • 过度绘制:10000行数据直接用散点图会出现大量点重叠,无法看清真实分布规律
  • 信息密度低:仅展示散点没有统计维度的补充信息,无法体现变量关联逻辑

优化实现方案

基础优化版(解决可视化效果问题)

核心解决过度绘制问题,同时按天气分组展示,更贴合你基于天气变量看另外两个变量关系的需求:

library(tidyverse)

# 可选操作:给分类变量加可读性标签,提升图表易读性(该数据集的通用编码规则如下)
bikes <- bikes %>%
  mutate(
    season = factor(season, levels = 1:4, labels = c("春季", "夏季", "秋季", "冬季")),
    weatherCondition = factor(weatherCondition, levels = 1:4, labels = c("晴朗", "多云", "小雨雪", "大雨雪"))
  )

ggplot(data = bikes, mapping = aes(x = season, y = rentals)) + 
  # 用带透明度的扰动散点解决重叠问题
  geom_jitter(aes(color = weatherCondition), alpha = 0.3, width = 0.2) +
  # 按天气分面,单独展示每个天气下的季节-租赁量关系
  facet_wrap(~weatherCondition) +
  # 添加箱线图展示分布统计值,不填充避免遮挡散点
  geom_boxplot(fill = NA, outlier.shape = NA, width = 0.3) +
  labs(
    x = "季节",
    y = "租赁量",
    color = "天气状况"
  ) +
  theme_bw()

进阶版(添加相关性等统计信息)

如果需要量化展示变量相关性,可以引入ggpubr包快速添加相关系数和显著性标注:

library(tidyverse)
library(ggpubr)

ggplot(data = bikes, mapping = aes(x = as.numeric(season), y = rentals, color = weatherCondition)) + 
  geom_jitter(alpha = 0.2, width = 0.1) +
  # 分组添加线性拟合线,展示趋势方向
  geom_smooth(method = "lm", se = FALSE) +
  # 自动计算分组的皮尔逊相关系数和显著性
  stat_cor(method = "pearson", label.x = 1.5) +
  scale_x_continuous(breaks = 1:4, labels = c("春季", "夏季", "秋季", "冬季")) +
  labs(
    x = "季节",
    y = "租赁量",
    color = "天气状况"
  ) +
  theme_bw()

优化效果说明

  • 解决了散点重叠问题,同时通过箱线图/拟合线直观展示不同分组下的分布规律和趋势
  • 分类变量替换为语义化标签后可读性大幅提升
  • 相关系数标注可以直接展示季节和租赁量的相关性强弱、显著性,方便判断关联逻辑
  • 分面展示可以更清晰对比不同天气状况下,季节对租赁量的影响差异

内容的提问来源于stack exchange,提问作者Embargo96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:06:02