数据可视化期末报告

Author

kaka

1 报告要求

  • 期末实验报告由5章节5个图形组成,每个章节需要作一个图形。

  • 每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。

  • 案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。

  • 每个章节的数据集合需要通过datatable 函数展示,并简要解释数据来源和变量意义。

  • 每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。

  • 渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档“8、期末报告” 列中。

  • 评分标准:

    • 每章节图形各20分

    • 能有效输出图形和合理解释75%

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 数据来源: 模拟生成的销售数据
    变量解释:

    Region: 销售区域(北、南、东、西)

    Product: 产品类型(A、B、C)

    Sales: 销售额(单位:万元)

library(data.table)
library(ggplot2)
library(DT)  # 新增DT包

# 创建示例数据集
sales_data <- data.table(
  Region = rep(c("North", "South", "East", "West"), each = 3),
  Product = rep(c("A", "B", "C"), times = 4),
  Sales = c(120, 150, 90, 80, 110, 70, 140, 160, 100, 95, 125, 75)
)

# 展示数据 - 现在应该能正常工作
datatable(sales_data, options = list(pageLength = 5))

2.2 图形1——多变量条形图

ggplot(sales_data, aes(x = Region, y = Sales, fill = Product)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "图形1——不同区域各产品销售额对比", 
       x = "销售区域", y = "销售额(万元)") +
  theme_minimal()

  • 图形解读:

     该多变量条形图清晰地展示了不同区域各产品的销售情况。可以看出,在东部地区,产品B的销售额最高,而西部地区各产品销售额相对较低。产品B在所有区域都表现较好,可能是一个明星产品。

3 数据分布可视化

3.1 案例数据解释与展示

  • R内置iris数据集
    变量解释:

    • Sepal.Length: 萼片长度

    • Sepal.Width: 萼片宽度

    • Petal.Length: 花瓣长度

    • Petal.Width: 花瓣宽度

    • Species: 鸢尾花种类

# 使用iris数据集
data(iris)
iris_dt <- as.data.table(iris)

# 展示数据
datatable(iris_dt, options = list(pageLength = 5))

3.2 图形2——箱线图

ggplot(iris_dt, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_boxplot() +
  labs(title = "图形2——不同种类鸢尾花萼片长度分布", 
       x = "种类", y = "萼片长度") +
  theme_minimal()

  • 图形解读:

    该箱线图展示了三种鸢尾花萼片长度的分布情况。可以看出setosa种类的萼片长度中位数最高且分布最为集中,而virginica的萼片长度范围最大,存在更多变异。

4 变量关系可视化

4.1 案例数据解释与展示

  • R内置mtcars数据集
    变量解释:

    mpg: 每加仑英里数

    cyl: 气缸数

    disp: 排量

    hp: 马力

    drat: 后轴比率

    wt: 重量(千磅)

    qsec: 1/4英里时间

    vs: 发动机类型

    am: 变速器类型

    gear: 前进档数

    carb: 化油器数量

# 使用mtcars数据集
data(mtcars)
mtcars_dt <- as.data.table(mtcars, keep.rownames = "Car")

# 展示数据
datatable(mtcars_dt, options = list(pageLength = 5))

4.2 图形3——散点图

ggplot(mtcars_dt, aes(x = wt, y = mpg, color = factor(cyl), size = hp)) +
  geom_point(alpha = 0.7) +
  labs(title = "图形3——汽车重量与燃油效率关系", 
       x = "重量(千磅)", y = "每加仑英里数",
       color = "气缸数", size = "马力") +
  theme_minimal()

  • 图形解读:

    该散点图展示了汽车重量与燃油效率的关系,并用颜色表示气缸数,点的大小表示马力。明显可见重量与燃油效率呈负相关关系,且气缸数越多,燃油效率普遍越低。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 模拟生成的月度销售数据
    变量解释:

    Date: 日期(2023年每月)

    Product_A: 产品A的销售额

    Product_B: 产品B的销售额

# 创建时间序列数据
date_seq <- seq(as.Date("2023-01-01"), as.Date("2023-12-31"), by = "month")
sales_ts <- data.table(
  Date = date_seq,
  Product_A = c(120, 135, 150, 145, 160, 155, 170, 165, 180, 175, 190, 185),
  Product_B = c(80, 90, 100, 110, 120, 115, 125, 130, 140, 145, 150, 155)
)

# 展示数据
datatable(sales_ts, options = list(pageLength = 5))

5.2 图形4——折线图

library(tidyr)
sales_long <- pivot_longer(sales_ts, cols = -Date, names_to = "Product", values_to = "Sales")

ggplot(sales_long, aes(x = Date, y = Sales, color = Product, group = Product)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  labs(title = "图形4——2023年两种产品月度销售趋势", 
       x = "日期", y = "销售额(万元)") +
  theme_minimal() +
  scale_x_date(date_labels = "%b", date_breaks = "1 month")

  • 图形解读:

    该折线图展示了2023年两种产品的月度销售趋势。可以看出两种产品都呈现总体上升趋势,但产品A的销售额始终高于产品B,且产品B的增长速度似乎更快。

6 时间序列可视化

6.1 案例数据解释与展示

  • 基于mtcars数据集计算的相关性矩阵
    变量解释:

    Var1: 第一个变量名

    Var2: 第二个变量名

    Correlation: 两个变量之间的相关系数

# 创建相关性矩阵数据
cor_data <- cor(mtcars_dt[, .(mpg, cyl, disp, hp, wt, qsec)])
cor_dt <- as.data.table(cor_data, keep.rownames = "Var1")
cor_long <- pivot_longer(cor_dt, cols = -Var1, names_to = "Var2", values_to = "Correlation")

# 展示数据
datatable(cor_long, options = list(pageLength = 5))

6.2 图形5——热力图

ggplot(cor_long, aes(x = Var1, y = Var2, fill = Correlation)) +
  geom_tile() +
  scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0) +
  geom_text(aes(label = round(Correlation, 2)), color = "black", size = 3) +
  labs(title = "图形5——汽车特征相关性热力图", 
       x = "", y = "") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

  • 图形解读:

    该热力图直观展示了汽车各特征之间的相关性。最明显的发现是mpg(燃油效率)与wt(重量)和cyl(气缸数)呈强负相关,说明重量越大、气缸数越多的汽车燃油效率越低。而重量与排量(disp)呈强正相关,符合预期。