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))数据可视化期末报告
1 报告要求
期末实验报告由5章节5个图形组成,每个章节需要作一个图形。
每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。
案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。
每个章节的数据集合需要通过
datatable函数展示,并简要解释数据来源和变量意义。每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。
渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档
“8、期末报告”列中。评分标准:
每章节图形各20分
能有效输出图形和合理解释75%
数据独特性强10%
图形个性化强15%
2 类别数据可视化
2.1 案例数据解释与展示
数据来源: 模拟生成的销售数据
变量解释:Region: 销售区域(北、南、东、西)
Product: 产品类型(A、B、C)
Sales: 销售额(单位:万元)
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)呈强正相关,符合预期。