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

如何在R语言中基于Carseats数据集绘制指定样式的图表

嘿,我来帮你搞定Carseats数据集的R语言绘图问题!先一步步来操作:

第一步:准备工作(加载包和数据集)

首先得把绘图必备的ggplot2包装上(如果还没装的话),然后读取Carseats数据集:

# 安装ggplot2(首次使用需要执行)
install.packages("ggplot2")
library(ggplot2)

# 读取Carseats数据集
carseats <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/Carseats.csv")
常见实用图表示例

下面给你几种常用的图表样式,你可以根据自己的需求调整:

1. 散点图:销售额与广告预算的关联(带回归线)

要是想直观看到Sales(销售额)和Advertising(广告投入)的关系,还能按ShelveLoc(货架位置)区分点的颜色:

ggplot(carseats, aes(x = Advertising, y = Sales, color = ShelveLoc)) +
  geom_point(alpha = 0.7) +  # 设透明度避免点重叠
  geom_smooth(method = "lm", se = FALSE) +  # 添加线性回归线,不显示置信区间
  labs(title = "销售额 vs 广告预算", x = "广告预算", y = "销售额", color = "货架位置") +
  theme_minimal()  # 用清爽的极简主题

小提示:alpha参数能让重叠的点更清晰,回归线可以帮你快速判断两者的趋势。

2. 箱线图:不同货架位置的销售额差异

想对比Bad/Medium/Good三种货架位置的销售额分布?箱线图最合适:

ggplot(carseats, aes(x = ShelveLoc, y = Sales, fill = ShelveLoc)) +
  geom_boxplot(width = 0.6, outlier.color = "red") +  # 调整箱线宽度,异常值标红
  labs(title = "不同货架位置的销售额分布", x = "货架位置", y = "销售额") +
  theme_bw() +  # 白底主题更简洁
  theme(legend.position = "none")  # x轴已经区分类别,去掉图例更清爽

箱线图能一眼看出每组数据的中位数、四分位数和异常值,很适合分类变量的对比。

3. 分组条形图:不同区域的平均销售额

如果要展示“是否美国市场”和“是否城市”组合后的平均销售额,先汇总数据再绘图:

# 需要用到dplyr做数据汇总,先安装加载
install.packages("dplyr")
library(dplyr)

# 按US和Urban分组,计算平均销售额
carseats_summary <- carseats %>%
  group_by(US, Urban) %>%
  summarise(Avg_Sales = mean(Sales), .groups = "drop")

# 绘制分组条形图
ggplot(carseats_summary, aes(x = Urban, y = Avg_Sales, fill = US)) +
  geom_col(position = "dodge", width = 0.7) +  # 并列显示分组柱子
  geom_text(aes(label = round(Avg_Sales, 1)), vjust = -0.5) +  # 柱子上方显示数值标签
  labs(title = "不同区域的平均销售额", x = "是否城市", y = "平均销售额", fill = "是否美国市场") +
  theme_classic()

小技巧:position="dodge"让分组柱子并列,数值标签能让结果更直观,不用读者自己估算。

4. 直方图:产品价格的分布情况

想看看Price(产品价格)的分布规律?试试直方图:

ggplot(carseats, aes(x = Price)) +
  geom_histogram(binwidth = 5, fill = "#2c3e50", color = "white") +  # 调整组宽为5,配色沉稳
  labs(title = "产品价格分布", x = "价格", y = "频数") +
  theme_dark()

你可以根据需求调整binwidth的值,来改变直方图的粒度,让分布展示更精准。

要是你有具体的指定样式(比如特定配色、自定义主题、特殊图表类型),可以随时提出来,咱们再细化调整!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:27:52