数据可视化期末报告

Author

221527234赵杰枫

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 数据来自世界银行2022年经济指标
# 数据准备
gdp_data <- data.frame(
  国家 = c("美国", "中国", "日本", "德国", "英国"),
  GDP_2022 = c(25439, 17963, 4256, 4082, 3071), # 单位:十亿美元
  人口 = c(333, 1412, 125, 84, 67) # 单位:百万
)

# 展示数据
datatable(gdp_data, caption = "2022年各国GDP与人口数据",
          options = list(pageLength = 5))

2.2 图形1——

# 绘制多变量条形图
ggplot(gdp_data, aes(x = 国家)) +
  geom_bar(aes(y = GDP_2022), stat = "identity", fill = "steelblue", width = 0.5) +
  geom_bar(aes(y = 人口 * 20), stat = "identity", fill = "darkorange", width = 0.5, alpha = 0.5) +
  scale_y_continuous(sec.axis = sec_axis(~./20, name = "人口(百万)")) +
  labs(title = "图形1——多变量条形图: 各国GDP与人口比较(2022)",
       x = "国家", y = "GDP(十亿美元)") +
  theme_minimal()

  • 图形解读:该图比较了五个主要经济体的GDP总量和人口规模。可以看到中国人口规模最大但是GDP总量低于美国,表明人均GDP仍有差距,而日本和德国则在人口规模较少的情况下实现了较高的GDP总量。

3 数据分布可视化

3.1 案例数据解释与展示

  • 数据来自NASA的空间研究所的实验数据,全球平均气温是相对于20世纪的平均水平
# 数据准备
temp_data <- data.frame(
  年份 = 1990:2022,
  全球平均气温 = c(14.3, 14.2, 14.1, 14.4, 14.3, 14.5, 14.4, 14.6, 14.5, 14.7, 
               14.6, 14.8, 14.7, 14.9, 15.0, 15.1, 15.0, 15.2, 15.1, 15.3, 
               15.2, 15.4, 15.3, 15.5, 15.6, 15.5, 15.7, 15.6, 15.8, 15.7, 
               15.9, 16.0, 16.1) # 单位:摄氏度
)

# 展示数据
datatable(temp_data, caption = "1990-2022年全球平均气温数据",
          options = list(pageLength = 5))

3.2 图形2——折线图

# 绘制折线图
ggplot(temp_data, aes(x = 年份, y = 全球平均气温)) +
  geom_line(color = "red", linewidth = 1) +
  geom_point(color = "darkred", size = 2) +
  labs(title = "图形2——折线图: 全球平均气温变化趋势(1990-2022)",
       x = "年份", y = "全球平均气温(℃)") +
  theme_minimal()

  • 图形解读:从图中可以清晰看到全球气温呈现明显上升趋势,特别是在2010年后升温更快,这也是全球的人口跟经济活动增加所导致的。

4 变量关系可视化

4.1 案例数据解释与展示

  • 数据使用了mtcars,mpg:每加仑汽油行驶英里数,hp:马力,wt:车重,cyl:气缸数
# 使用mtcars数据集
data(mtcars)
mtcars$car <- rownames(mtcars)

# 展示数据
datatable(mtcars[, c("car", "mpg", "hp", "wt")], 
          caption = "汽车性能数据",
          options = list(pageLength = 5))

4.2 图形3——散点图

# 绘制散点图
ggplot(mtcars, aes(x = hp, y = mpg)) +
  geom_point(aes(size = wt, color = as.factor(cyl)), alpha = 0.7) +
  labs(title = "图形3——散点图: 汽车马力与油耗关系",
       x = "马力", y = "每加仑英里数(MPG)",
       color = "气缸数", size = "重量(千磅)") +
  theme_minimal()

  • 图形解读:图中显示了马力与油耗之间是负相关,即马力越大汽车油耗越高(mpg越低)。重量较大的油耗也高。且六缸,八缸的汽车普遍比四缸的汽车油耗高。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 数据来自国际电信联盟2022年报告
# 数据准备
internet_users <- data.frame(
  地区 = c("亚洲", "欧洲", "非洲", "美洲", "大洋洲"),
  用户数 = c(2600, 727, 590, 400, 30) # 单位:百万
)

# 展示数据
datatable(internet_users, caption = "2022年全球互联网用户分布",
          options = list(pageLength = 5))

5.2 图形4——饼图

# 绘制饼图
ggplot(internet_users, aes(x = 2, y = 用户数, fill = 地区)) +  # 
    geom_bar(stat = "identity", width = 1) +
    coord_polar("y", start = 0) +
    labs(title = "图形4—饼图:全球互联网用户地区分布(2022)",
         fill = "地区") +
    theme_void() +
    geom_text(aes(label = paste0(round(用户数/sum(用户数)*100, 1), "%")),  
              position = position_stack(vjust = 0.5)) +   
    xlim(0.5, 2.5)

  • 图形解读:饼图可以看出亚洲在全球互联网用户中占据主导地位,占比接近60%,欧洲非洲分别在第二或者第三,而大洋洲最少。反映了人口规模和经济发展水平的地区差异。

6 时间序列可视化

6.1 案例数据解释与展示

  • 数据使用了palmerpenguins包,species:企鹅种类,bill_length_mm:上喙长度
library(palmerpenguins)


# 展示数据
datatable(penguins, 
          caption = "企鹅形态测量数据",
          options = list(scrollX = TRUE, pageLength = 5))

6.2 图形5——箱线图

# 绘制箱线图
ggplot(na.omit(penguins), 
       aes(x = species, y = bill_length_mm, fill = species)) +
  geom_boxplot(alpha = 0.7, outlier.shape = 21) +
  scale_fill_manual(values = c("#FF9AA2", "#FFB7B2", "#FFDAC1")) +
  labs(title = "图形5——箱线图: 不同种类企鹅的喙长度比较",
       x = "企鹅种类", 
       y = "喙长度 (mm)",
       fill = "种类") +
  theme_minimal() +
  theme(legend.position = "none") +
  geom_jitter(width = 0.1, alpha = 0.3) 

  • 图形解读:Gentoo企鹅的喙长度明显大于其他两种且分布范围更广