数据可视化期末报告

Author

221527129江泽涛

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 数据来源于国家统计局,统计了近10年外国人入境的相关信息,按性别、年龄和事由等多个维度进行了分类汇总,涵盖男性、女性入境游客数据,以及不同年龄段(如14岁以下、15-24岁、25-44岁等)和入境事由(会议/商务、观光休闲等)的入境游客人次。时间跨度为2015年至2024年,单位是万人次。
# 加载必要的库
library(readxl)
library(DT)
library(ggplot2)
library(reshape2)
library(scales)

# 读取数据
data <- read_excel("按性别、年龄和事由分外国人入境.xls")

# 使用datatable展示数据
datatable(data, options = list(pageLength = 10))

2.2 图形1——

# 多变量条形图:不同入境事由的入境人数对比
reasons <- data[grep("会议/商务|观光休闲|探亲访友|服务员工|其他", data$指标), ]

# 将数据转换为长格式
reasons_long <- melt(reasons, id.vars = "指标", variable.name = "年份", value.name = "入境人数")

# 绘制多变量条形图
ggplot(reasons_long, aes(x = 指标, y = 入境人数, fill = 年份)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "图形1——多变量条形图:不同入境事由的入境人数对比",
       x = "入境事由", y = "入境人数(万人次)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(labels = comma)

  • 图形解读:从图中可以看出,观光休闲一直是外国人入境的主要事由,其次是会议/商务。探亲访友和服务员工的入境人数相对较少。这表明大多数外国人来本国的目的是旅游或商务活动。

3 数据分布可视化

3.1 案例数据解释与展示

  • 数据来源于国家统计局,统计了近10年外国人入境的相关信息,按性别、年龄和事由等多个维度进行了分类汇总,涵盖男性、女性入境游客数据,以及不同年龄段(如14岁以下、15-24岁、25-44岁等)和入境事由(会议/商务、观光休闲等)的入境游客人次。时间跨度为2015年至2024年,单位是万人次。
# 加载必要的库
library(readxl)
library(DT)
library(ggplot2)
library(reshape2)
library(scales)

# 读取数据
data <- read_excel("按性别、年龄和事由分外国人入境.xls")

# 使用datatable展示数据
datatable(data, options = list(pageLength = 10))

3.2 图形2——

# 图形6——小提琴图:每年外国人入境人数分布
visitors <- data[data$指标 == "外国人入境游客(万人次)", ]
visitors_long <- melt(visitors, id.vars = "指标", variable.name = "年份", value.name = "入境人数")

# 绘制小提琴图
ggplot(visitors_long, aes(x = "", y = 入境人数)) +
  geom_violin(fill = "lightblue", color = "black") +
  geom_jitter(width = 0.1, aes(color = 入境人数)) +
  labs(title = "小提琴图:每年外国人入境人数分布",
       y = "入境人数(万人次)") +
  scale_y_continuous(labels = comma)

  • 图形解读:从图中可以看出,每年外国人入境人数的分布呈现一定的集中趋势,且在近年有所减少。这可能与全球政治经济形势或本国入境政策有关。

4 变量关系可视化

4.1 案例数据解释与展示

  • 数据包含31个省市的GDP指标:

    1. 2024年GDP:当年经济总量(亿元)

    2. 名义增速:未剔除价格因素的增长率

    3. 实际增速:剔除价格因素后的实际增长率

    4. 五普修订后2023年GDP:经第五次经济普查修订的基准数据

# 安装并加载必要的包
#install.packages("readxl")
library(readxl)
#install.packages("data.table")
library(data.table)

# 读取文件
excel_file <- read_excel("2024年全国各省市GDP排名.xlsx")

# 使用 datatable 展示数据
datatable(excel_file)

4.2 图形3——

# 加载必要包
library(ggplot2)
library(ggrepel)  # 防止标签重叠

# 创建气泡图
ggplot(excel_file, aes(x = `名义增速(%)`, y = `实际增速(%)`)) +
  # 气泡:大小=GDP总量,颜色=GDP总量
  geom_point(aes(size = `2024年GDP`, color = `2024年GDP`), alpha = 0.8) +
  
  # 添加省市标签(自动避让)
  geom_text_repel(aes(label = 省市), size = 3.5, 
                  box.padding = 0.5, point.padding = 0.3) +
  
  # 添加参考线
  geom_vline(xintercept = mean(excel_file$`名义增速(%)`), 
             linetype = "dashed", color = "gray50") +
  geom_hline(yintercept = mean(excel_file$`实际增速(%)`), 
             linetype = "dashed", color = "gray50") +
  
  # 设置颜色和大小渐变
  scale_size_continuous(
    name = "GDP总量 (亿元)",
    breaks = c(10000, 50000, 100000, 140000),
    labels = scales::comma,
    range = c(3, 15)) +
  scale_color_gradient(
    name = "GDP总量 (亿元)",
    low = "#4b86b4", 
    high = "#e14b31",
    breaks = c(10000, 50000, 100000, 140000),
    labels = scales::comma) +
  
  # 设置坐标轴范围
  xlim(min(excel_file$`名义增速(%)`)-0.5, 
       max(excel_file$`名义增速(%)`)+0.5) +
  
  # 添加图题和标签
  labs(title = "2024年各省市GDP总量与增速关系",
       subtitle = "气泡大小/颜色表示GDP总量,虚线为平均增速",
       x = "名义增速 (%)",
       y = "实际增速 (%)",
       caption = "数据来源:2024年统计公报 | 注:山西出现负增长") +
  
  # 主题美化
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5, size = 16),
    plot.subtitle = element_text(hjust = 0.5, color = "gray40"),
    legend.position = "right",
    panel.grid.major = element_line(color = "gray90"),
    panel.grid.minor = element_blank(),
    axis.title = element_text(face = "bold")
  )

  • 图形解读:
  • 三维数据呈现
    • 气泡大小:代表GDP总量(广东、江苏最大)

    • X轴:名义增速(含价格因素)

    • Y轴:实际增速(剔除价格因素)

    • 气泡颜色:GDP总量梯度(蓝色小经济体→红色大经济体)

  • 关键发现
    • 增长集群:多数省份集中在名义增速4-6%、实际增速5-6%区间(右上象限)

    • 异常省份

      • 山西(左下角):唯一负增长省份(名义增速-2.14%)

      • 西藏(右上角):最高名义增速(9.16%)

    • 增速差异:实际增速普遍高于名义增速(气泡大多在45度线上方)

  • 经济规模模式
    • 经济大省(红/大气泡):增速稳定但不高(广东、江苏在3-5%)

    • 中等省份(紫/中气泡):增速较高(湖北、安徽>5.5%)

    • 小经济体(蓝/小气泡):增速分化(西藏高增长,黑龙江低增长)

  • 参考线意义
    • 垂直虚线:全国平均名义增速(4.6%)

    • 水平虚线:全国平均实际增速(5.1%)

    • 右上象限:双高增长省份(如西藏、新疆)

    • 左下象限:双低增长省份(如山西、黑龙江)

5 样本相似性可视化

5.1 案例数据解释与展示

  • 数据来源:国家统计局

  • 变量意义

    • 全国城镇调查失业率:全国城镇范围内调查得到的失业率(%)。

    • 31个大城市城镇调查失业率:31个主要城市城镇范围内的失业率(%)。

    • 全国城镇本地户籍劳动力失业率:本地户籍劳动力的失业率(%)。

    • 全国城镇外来户籍劳动力失业率:外来户籍劳动力的失业率(%)。

    • 企业就业人员周平均工作时间:企业就业人员每周平均工作时间(小时)。

    • 不同年龄段劳动力失业率:不包含在校生的16-24岁、25-29岁、30-59岁劳动力的失业率(%)。

# 加载必要的库
library(DT)
library(readxl)

# 读取数据
data <- readxl::read_excel("城镇调查失业率.xls")

# 数据清理:重命名列
colnames(data) <- c("指标", "2025年4月", "2025年3月", "2025年2月", "2025年1月", 
                    "2024年12月", "2024年11月", "2024年10月", "2024年9月", 
                    "2024年8月", "2024年7月", "2024年6月", "2024年5月", "2024年4月")

# 展示数据表格
datatable(data, 
          caption = "城镇调查失业率及相关指标(月度数据)",
          options = list(pageLength = 10, 
                         lengthMenu = c(10, 20, 50, 100)))

5.2 图形4——

# 加载必要的库
library(ggplot2)
library(tidyr)
library(dplyr)

# 读取数据
data <- readxl::read_excel("城镇调查失业率.xls")

# 数据清理:重命名列
colnames(data) <- c("指标", "2025年4月", "2025年3月", "2025年2月", "2025年1月", 
                    "2024年12月", "2024年11月", "2024年10月", "2024年9月", 
                    "2024年8月", "2024年7月", "2024年6月", "2024年5月", "2024年4月")

# 转换数据格式为长格式
data_long <- data %>%
  pivot_longer(cols = -指标, names_to = "时间", values_to = "值") %>%
  mutate(时间 = as.Date(paste0(时间, "-01"), format = "%Y年%m月-%d"))

# 选择用于PCA的指标
pca_data <- data_long %>%
  spread(时间, 值) %>%
  select(-指标) %>%
  as.data.frame()

# 检查并处理缺失值和无穷值
pca_data <- na.omit(pca_data)  # 删除包含缺失值的行
pca_data <- apply(pca_data, 2, function(x) ifelse(is.infinite(x), mean(x, na.rm = TRUE), x))

# 执行PCA
pca_result <- prcomp(pca_data, scale. = TRUE)

# 提取PCA结果
pca_scores <- as.data.frame(pca_result$x)
pca_scores$时间 <- rownames(pca_scores)

# 绘制PCA散点图
ggplot(pca_scores, aes(x = PC1, y = PC2, label = 时间)) +
  geom_point() +
  geom_text(aes(label = 时间), hjust = 0.5, vjust = -1) +
  labs(title = "城镇调查失业率样本相似性PCA散点图",
       x = "主成分1",
       y = "主成分2") +
  theme_minimal()

  • 图形解读:
  • PCA散点图
    • 每个点代表一个时间点(如2024年4月、2024年5月等)。

    • 点的位置由主成分分析(PCA)决定,反映了不同时间点在主要成分上的投影。

    • 如果某些时间点的点在图中距离较近,说明这些时间点的失业率及相关指标组合相似。例如,2024年11月和2024年12月的点如果靠近,说明这两个月的失业率及相关指标表现相似,可能受到相似的经济因素影响。

6 时间序列可视化

6.1 案例数据解释与展示

  • 数据来源于国家统计局,包含2014年至2022年不同类别工业企业销售费用的年度数据。变量包括:

    • 工业企业销售费用:按不同企业类型(如轻工业、重工业、大型、中型、小型等)和企业性质(如内资、外资、私营、国有等)分类的销售费用(单位:亿元)。

    • 时间序列:从2014年到2022年的年度数据。

# 加载必要的库
library(DT)

# 数据准备
data <- readxl::read_excel("副本年度数据.xls")

# 展示数据表格
datatable(data, 
          caption = "工业企业销售费用年度数据(单位:亿元)",
          options = list(pageLength = 10, 
                         lengthMenu = c(10, 20, 50, 100)))

6.2 图形5——

# 加载必要的库
library(ggplot2)
library(tidyr)
library(dplyr)

# 数据准备
data <- readxl::read_excel("副本年度数据.xls")

# 转换数据格式
data_long <- data %>%
  pivot_longer(cols = -指标, names_to = "年份", values_to = "销售费用") %>%
  mutate(年份 = as.numeric(gsub("年", "", 年份)))

# 绘制堆叠柱状图
ggplot(data_long, aes(x = 年份, y = 销售费用, fill = 指标)) +
  geom_bar(stat = "identity", position = "stack") +
  labs(title = "工业企业销售费用年度变化(堆叠柱状图)",
       x = "年份",
       y = "销售费用(亿元)",
       fill = "企业类型") +
  theme_minimal() +
  theme(legend.position = "right")

# 图形解读
# 从图中可以看出,不同企业类型的销售费用在不同年份的变化趋势。
# 例如,私营工业企业销售费用在过去几年中呈现出较为稳定的增长趋势,这可能反映了私营企业在市场中的活跃度和竞争力不断增强。
# 而某些国有企业或集体企业的销售费用则相对稳定或略有波动,这可能与它们的市场策略和行业环境有关。
  • 图形解读:
  • 私营工业企业销售费用在过去几年中呈现出较为稳定的增长趋势,这可能反映了私营企业在市场中的活跃度和竞争力不断增强。
  • 国有企业和集体企业的销售费用则相对稳定或略有波动,这可能与它们的市场策略和行业环境有关。例如,国有企业可能更注重长期稳定发展,而集体企业可能受到行业政策和市场需求的影响。
  • 外资企业和港澳台商投资企业的销售费用也表现出一定的增长趋势,但波动相对较大,这可能与全球经济环境和外资企业的市场策略调整有关。