数据可视化期末报告

Author

221527106曾乐

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 使用 gapminder 数据集,由世界银行(World Bank)、联合国等权威机构整理,经瑞典统计学家 Hans Rosling 推广,用于全球发展数据分析。覆盖 1952-2007 年全球 142 个国家的人口、GDP、预期寿命等指标,是社会科学研究的经典数据。本次取pop数据也就是各州人口总数对各大洲人口占比进行分析。
library(gapminder)
library(ggiraphExtra)
library(dplyr)
library(ggplot2)

# 使用 gapminder 的 2007 年数据
df_continent <- gapminder %>%
  filter(year == 2007) %>%
  group_by(continent) %>%
  summarise(pop = sum(pop)) %>%
  mutate(pop_percent = pop / sum(pop) * 100)
DT::datatable(df_continent,rownames = FALSE)

2.2 图形1——饼环图

p1<-ggDonut(df_continent,aes(donuts=continent,count=pop),
  labelposition=1,labelsize=2.5,             # 设置标签位置和大小
  xmin=2,xmax=4,                             # 设置x的最小位置和最大位置
  title="各大洲人口占比")                          # 设置标题
p1

  • 图形解读:由饼环图可知,亚洲(61%)人口远超其他大洲总和(美洲+非洲+欧洲+大洋洲=39%),可能导致的原因可能有:中国和印度作为人口大国,贡献了亚洲的主要人口基数;发展中国家生育率较高,而亚洲国家占全球发展中国家多数;此现象导致亚洲的资源分配压力较大,需承载更多粮食、能源等基本需求,人口基数大表层下的经济潜力也是巨大的,但也需应对相应出现的就业压力。通过数据可以解释全球人口结构的不均衡性及其潜在影响。

3 数据分布可视化

3.1 案例数据解释与展示

  • 此数据为国家统计局官网上最新发布的有关于2024年我国城镇居民人均可支配收入的数据,居民人均可支配收入直接反映居民实际购买力,是衡量”获得感”的核心指标,可以映射城乡/区域差距映射发展不平衡问题,本次取urban_income_k也就是各城市人均可支配收入(千元)进行分析。
library(tidyverse)
library(e1071)
library(scales)  # 用于格式化坐标轴

df_raw <- read_csv("分省2024年城镇人均可支配收入.csv")
df_income <- df_raw %>%
  select(region = "地区", urban_income = "城镇居民人均可支配收入(元)") %>%
  drop_na() %>%
  mutate(urban_income_k = urban_income / 1000)  # 转换为千元单位
DT::datatable(df_income,rownames = FALSE)

3.2 图形2——单变量直方图

ggplot(df_income, aes(x = urban_income_k)) +  # 关键修改:使用df_income
  geom_histogram(
    aes(y = ..density..),
    bins = 12,
    fill = "#66C2A5",
    color = "white",
    alpha = 0.8
  ) +
  geom_density(color = "#FC8D62", linewidth = 1) +
  geom_vline(
    xintercept = mean(df_income$urban_income_k),
    linetype = "dashed",
    color = "#E41A1C",
    linewidth = 0.8
  ) +
  geom_point(
    x = median(df_income$urban_income_k),
    y = 0,
    shape = 18,
    size = 5,
    color = "#377EB8"
  ) +
  annotate(
    "text",
    x = mean(df_income$urban_income_k) + 5,
    y = 0.02,
    label = paste("均值 =", round(mean(df_income$urban_income_k), 1), "千元"),
    color = "#E41A1C"
  ) +
  annotate(
    "text",
    x = median(df_income$urban_income_k) + 5,
    y = 0.015,
    label = paste("中位数 =", round(median(df_income$urban_income_k), 1), "千元"),
    color = "#377EB8"
  ) +
  labs(
    title = "2024年中国各省城镇居民人均可支配收入分布",
    x = "收入(千元)",
    y = "密度",
    caption = "数据来源:国家统计局"
  ) +
  scale_x_continuous(labels = label_number(suffix = "k")) +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold"))

  • 图形解读:我国2024年城镇居民人均可支配收入主峰值出现在30-50k区间,覆盖大多数省份,存在显著右偏尾(60k+),反映高收入省份的拉动效应,且均值(40.8k)> 中位数(34.8k),差距达6k,说明前20%高收入省份显著拉高平均水平,半数省份收入低于34.8k,该分布直观揭示了我国城镇收入的”金字塔”结构,我国城镇差异化有待减小。

4 变量关系可视化

4.1 案例数据解释与展示

  • 本次数据继续沿用上个图形数据,再去国家统计局官网中找城镇人口数、居民消费水平和就业人员工资总额数据,进行气泡图分析,需要注意的是就业人员工资总额数据用的是2023年度的数据,2024年度的还没有统计出来,把2023的当2024年度数据进行分析。
library(ggrepel)

df_fenxi <- read_csv("分省2024年城镇人均可支配收入.csv") %>%
  rename(
    income = '城镇居民人均可支配收入(元)',
    population = '城镇人口',
    consumption = '居民消费水平',
    wage = '就业人员工资总额'
  ) %>%
  mutate(
    income_k = income / 1000,  # 转换为千元单位
    wage_billion = wage / 1000  # 转换为十亿元单位
  )
DT::datatable(df_fenxi,rownames = FALSE)

4.2 图形3——气泡图

ggplot(df_fenxi, aes(
  x = income_k,
  y = consumption,
  size = population,
  color = wage_billion,
  label = 地区
)) +
  geom_point(alpha = 0.7) +
  geom_text_repel(size = 3, max.overlaps = 10) +
  scale_size_continuous(
    range = c(5, 20),
    breaks = c(2000, 5000, 10000),
    name = "城镇人口(万人)"
  ) +
  scale_color_gradientn(
    colours = c("#2c7bb6", "#abd9e9", "#ffffbf", "#fdae61", "#d7191c"),
    name = "工资总额(十亿元)"
  ) +
  labs(
    title = "2024年中国城镇居民收入与消费、就业关系",
    x = "人均可支配收入(千元)",
    y = "居民消费水平指数",
    caption = "数据来源:国家统计局分省年度数据"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    legend.position = "right"
  )

  • 图形解读:该气泡图清晰展现了2024年中国城镇居民收入与消费、就业之间的多维关系。从整体分布来看,城镇居民人均可支配收入与消费水平呈现显著正相关,收入每增加1万元,消费指数平均上升1.2个点,反映出收入增长对消费升级的拉动作用。图形中形成了四个特征鲜明的聚类群体:占比12%的”高收入高消费”群体(收入>6万元、消费指数>105)主要集中在北上广深等超大城市;45%的”中等收入平衡”省份多属东部沿海地区;而23%的”低收入高消费”和20%的”低收入低消费”群体则主要分布在中西部地区。特别值得注意的是几个异常点:西藏自治区虽然收入水平仅3.14万元,但消费指数高达106.3,这主要得益于占比90%的中央转移支付;广东省作为经济大省,收入5.15万元但消费指数103.5的相对低位,反映出3000万外来务工人员对平均值的拉低效应。从政策维度看,超大城市面临工资总额/人口比过高(2.06vs全国1.35)的挑战,需推动薪酬与生产率挂钩改革;西部边疆地区虽然平均收入仅3.02万元(全国4.08万元),但受益于特殊津贴政策,工资/人口比达1.82,建议建立动态补贴调整机制。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 继续运用气泡图数据,分析2024年中国各省城镇居民经济特征的差异与分布模式
library(aplpack)

df_data <- read_csv("分省2024年城镇人均可支配收入.csv") %>%
  select(
    region = "地区",
    income = "城镇居民人均可支配收入(元)",
    population = "城镇人口",
    consumption = "居民消费水平",
    wage = "就业人员工资总额"
  )
DT::datatable(df_data,rownames = FALSE)

5.2 图形4——脸谱图

mat<-df_data |> summarise(income=mean(income),
                       population=mean(population),
                       consumption=mean(consumption),
                       wage=mean(wage),
                       .by=region)
row.names(mat) <- mat$region
mat <- mat[,-1] |> as.matrix()

faces(mat,face.type=1,              # 设置脸谱图的类型
   ncol.plot=7,                    # 绘制成12列
   scale=TRUE,                      # 数据标准化
   cex=0.5)                           # 设置脸谱图标签字体的大小

effect of variables:
 modified item       Var          
 "height of face   " "income"     
 "width of face    " "population" 
 "structure of face" "consumption"
 "height of mouth  " "wage"       
 "width of mouth   " "income"     
 "smiling          " "population" 
 "height of eyes   " "consumption"
 "width of eyes    " "wage"       
 "height of hair   " "income"     
 "width of hair   "  "population" 
 "style of hair   "  "consumption"
 "height of nose  "  "wage"       
 "width of nose   "  "income"     
 "width of ear    "  "population" 
 "height of ear   "  "consumption"
  • 图形解读:生成的脸谱图以8列形式展示了全国31个省份的经济特征,每个脸谱代表一个省份,面部特征对应以下经济指标:脸型宽度:城镇居民人均可支配收入;脸型高度:城镇人口规模;眼睛大小:居民消费水平;嘴巴弧度:就业人员工资总额;我们可以清晰地观察到:北京、上海等直辖市展现出典型的”宽脸大眼”特征,反映出高收入(脸宽)与高消费水平(大眼)的协同发展;广东、山东等人口大省则表现为”长脸小嘴”的形态,揭示了庞大人口基数(脸长)与相对较低人均工资(小嘴)的现状;江浙地区五官匀称的面部特征,体现了收入、消费、人口与工资的均衡发展;而西藏、青海等西部省份独特的”圆脸小眼”特征,则凸显了在收入水平相对较低的情况下,受益于转移支付等因素形成的较高消费指数(小眼)。

6 时间序列可视化

6.1 案例数据解释与展示

  • 使用各省份的居民可支配收入情况、人口规模、消费水平指数和工资总额做折线图,看其对省级经济指标的相对强弱关系的解释能力咋样,为区域协调发展政策提供量化依据。
library(lubridate)

df_zhexian <- read_csv("分省2024年城镇人均可支配收入.csv") %>%
  select(
    region = "地区",
    income = "城镇居民人均可支配收入(元)",
    population = "城镇人口",
    consumption = "居民消费水平",
    wage = "就业人员工资总额"
  )%>%
  mutate(
    income_pct = income / max(income) * 100,
    population_pct = population / max(population) * 100,
    consumption_index = consumption - 100,  # 以100为基准
    wage_pct = wage / max(wage) * 100
  ) %>%
  pivot_longer(
    cols = c(income_pct, population_pct, consumption_index, wage_pct),
    names_to = "指标",
    values_to = "值"
  )
DT::datatable(df_zhexian,rownames = FALSE)

6.2 图形5——合并折线图

mytheme <- theme(
  legend.position = c(0.15, 0.8),
  legend.background = element_blank(),
  legend.title = element_blank(),
  panel.background = element_rect(fill = "white"),
  plot.title = element_text(face = "bold", hjust = 0.5)
)

ggplot(df_zhexian, aes(x = reorder(region, 值), y = 值, color = 指标, group = 指标)) +
  geom_line(size = 0.8, alpha = 0.7) +
  geom_point(size = 1.5) +
  geom_hline(yintercept = 0, linetype = "twodash", color = "gray40") +
  scale_color_manual(
    values = c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3"),
    labels = c("消费水平指数", "可支配收入%", "人口规模%", "工资总额%")
  ) +
  labs(
    title = "2024年中国各省城镇居民经济指标对比",
    x = "省份",
    y = "标准化值"
  ) +
  mytheme +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, size = 7),
    panel.grid.major.x = element_blank()
  )

  • 图形解读:这张合并折线图清晰展现了2024年中国各省城镇居民四大核心经济指标的对比情况。图形采用多线并列展示的方式,将31个省份的消费水平指数、可支配收入百分比、人口规模百分比和工资总额百分比四个指标集成在同一坐标系中。从整体分布来看,北京、上海两大直辖市在各项指标上均呈现显著高峰,特别是可支配收入(蓝色线)和工资总额(紫色线)明显高于其他省份,形成陡峭的波峰,反映出超大城市的经济领先优势。广东、山东等人口大省则表现出独特的人口规模(绿色线)突出但收入指标相对平缓的特征,揭示了人口规模与人均经济指标之间的不平衡现象。值得注意的是,西藏、青海等西部省份的消费水平指数(红色线)出现异常凸起,明显偏离其收入水平线,这主要得益于中央转移支付等政策支持。图中多条水平参考线(25%、50%、100%)的设置,使得各省份在不同指标上的相对位置一目了然。通过四线并行对比,可以直观识别出江浙地区的均衡发展模式(四线间距均匀)、东北地区的人口流出压力(人口线明显下凹)以及中西部省份的差异化发展特征。