数据可视化期末报告

Author

221527216叶梓欣

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 数据来源于国家统计局的年度数据,其中国民经济核算的国内生产总值,变量分别有指标,国民总收入,国内生产总值,第一产业增加值,第二产业增加值,第三产业增加值,人均国内生产总值
data1<-read.csv("C:/Users/jenni/Desktop/年度数据.csv")
DT::datatable(data1,rownames = FALSE)

2.2 图形1——饼环图

library(dplyr)
library(ggplot2)

# Assuming data1 is your original data frame
df <- data1 %>% 
  select(指标, 第一产业增加值, 第二产业增加值, 第三产业增加值)

df_long <- df %>% 
  tidyr::pivot_longer(
    cols = -指标,
    names_to = "产业",
    values_to = "增加值"
  )

# Calculate percentages - need to group by 指标 if you have multiple categories
plot_data <- df_long %>% 
  group_by(指标) %>% 
  mutate(
    百分比 = 增加值 / sum(增加值) * 100,
    label = paste0(产业, "\n", round(百分比, 1), "%")
  ) %>% 
  ungroup()

# If you want to plot for a specific 指标 (assuming it's a character/factor variable)
selected_index <- plot_data$指标[1]  # or specify your selection

ggplot(plot_data %>% filter(指标 == selected_index), 
       aes(x = 2, y = 增加值, fill = 产业)) +
  geom_col(width = 1, color = "white") +
  geom_text(
    aes(y = 增加值/2 + c(0, cumsum(增加值)[-length(增加值)]), 
        label = label),  # Use the label from the data frame
    color = "black",
    size = 4
  ) +
  coord_polar(theta = "y") +
  xlim(0.5, 2.5) +
  labs(title = paste("产业结构占比 -", selected_index)) +
  theme_void() +
  scale_fill_manual(values = c("#4E79A7", "#F28E2B", "#E15759")) +
  guides(fill = "none")  # Remove legend if not needed

  • 图形解读:

    这个饼环图显示第三产业增加值占比最大,为56.7%。这表明第三产业在该年的经济结构中占据了主导地位,第二产业增加值占比为36.5%,比第三产业少,也是一个重要的组成部分,第一产业增加值占比最小,为6.8%。反映了农业或初级产业在整体经济中的较小份额。总体来看,该图表明经济结构中第三产业占据主导地位,第二产业次之,而第一产业相对较小,这种结构是经济发展到较高阶段的重要特征。

3 数据分布可视化

3.1 案例数据解释与展示

  • 数据来源于国家统计局的年度数据,其中国民经济核算的国内生产总值,变量分别有指标,国民总收入,国内生产总值,第一产业增加值,第二产业增加值,第三产业增加值,人均国内生产总值
data1<-read.csv("C:/Users/jenni/Desktop/年度数据.csv")
DT::datatable(data1,rownames = FALSE)

3.2 图形2——箱线图

library(ggplot2)
library(dplyr)
library(tidyr)      # 替代reshape2的gather
library(forcats)    # 提供fct_inorder函数
library(RColorBrewer)

# 自定义主题
mytheme <- theme(
  plot.title = element_text(size = 11),    # 英文逗号
  axis.title = element_text(size = 10),
  axis.text = element_text(size = 9),
  legend.text = element_text(size = 8)
)

# 数据处理
df <- data1 %>% 
  select(-c(1, 2, 3)) %>% 
  pivot_longer(
    cols = everything(),
    names_to = "指标",
    values_to = "指标值"
  ) %>% 
  mutate(指标 = fct_inorder(指标))

# 检查唯一指标数量
n_indicators <- n_distinct(df$指标)
print(paste("指标数量:", n_indicators))  
[1] "指标数量: 4"
# 动态生成调色板(匹配实际指标数量)
palette <- brewer.pal(n_indicators, "Set2")

# 绘图
ggplot(df, aes(x = 指标, y = 指标值, fill = 指标)) +  
  geom_boxplot() +
  stat_summary(
    fun = "mean", 
    geom = "point", 
    shape = 21, 
    size = 2.5, 
    fill = "white"
  ) +
  scale_fill_manual(values = palette) +  # 指定颜色
  mytheme

  • 图形解读:

    这个箱线图可以用于展示不同指标的数据分布情况,第一产业增加值是绿色的,第二产业增加值是橙色的,第三产业增加值是蓝色的,人均国内生产总值是紫色的,第二产业增加值的中位数和四分位数范围较大,表示数据分布较广,第三产业增加值的中位数较高,且数据分布较为集中,人均国内生产总值的中位数最低,数据分布也较为集中。

4 变量关系可视化

4.1 案例数据解释与展示

  • 数据来源于国家统计局的年度数据,其中国民经济核算的国内生产总值,变量分别有指标,国民总收入,国内生产总值,第一产业增加值,第二产业增加值,第三产业增加值,人均国内生产总值
library(ggplot2)
library(ggExtra)

df <- as.data.frame(data1)

4.2 图形3——两变量散点图

p1 <- ggplot(data = df, aes(x = 国民总收入, y = 国内生产总值)) +
  geom_point(shape = 21, size = 1.5, fill = "deepskyblue") +
  geom_rug(color = "steelblue") +
  stat_smooth(method = lm, color = "red", fill = "blue", size = 0.8) +
  geom_point(aes(x = mean(国民总收入), y = mean(国内生产总值)), 
             shape = 21, fill = "yellow", size = 4) +
  ggtitle("散点图+地毯图+线性拟合+边际图")

ggMarginal(p1, type = "densigram", color = "grey50", 
           fill = "lightskyblue", alpha = 0.5)

  • 图形解读:

    这个散点图结合了线性拟合和边际图,展示了两个变量之间的关系,横轴是“国民总收入”,纵轴是“国内生产总值”。散点图显示了国民总收入和国内生产总值之间的关系,红色的线是线性拟合线,表示两者之间的线性关系,顶部和右侧的条形图(边际图)分别展示了国民总收入和国内生产总值的分布情况,线性拟合线表明国民总收入和国内生产总值之间存在正相关关系,即随着国民总收入的增加,国内生产总值也倾向于增加。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 数据来源于国家统计局的年度数据,其中国民经济核算的国内生产总值,变量分别有指标,国民总收入,国内生产总值,第一产业增加值,第二产业增加值,第三产业增加值,人均国内生产总值
library(ggiraphExtra)  # 加载雷达图所需的包
library(ggplot2)

data1<-read.csv("C:/Users/jenni/Desktop/年度数据.csv")
DT::datatable(data1,rownames = FALSE)

5.2 图形4——雷达图

# 自定义主题
mytheme <- theme(
  legend.position = "right",    # 设置图例位置
  axis.text.x = element_text(size = 9, color = "blue4")  # 设置x轴文本样式
)

# 创建雷达图
ggRadar(
  data = data1,                # 使用data参数
  mapping = aes(group = 指标),  # 按指标分组
  rescale = FALSE,             # 数据不归一化
  ylim = c(0, 1500000),        # 调整y轴范围以适应数据
  alpha = 0,                   # 设置颜色透明度
  size = 2                     # 设置线的大小
) +
  mytheme +
  xlab("指标") +               # 设置x轴标签
  ylab("数值") +               # 设置y轴标签
  ggtitle("(a) 原始数据雷达图") # 添加标题

  • 图形解读:

    这个雷达图用于展示2015年到2024年在四个指标上的表现。图中的四个指标分别是产业增加值,第二产业增加值,第三产业增加值,人均国内生产总值,可以看出第一次产业增加值和人均国内生产总值数值较小,随着年份增加得不多,国民总收入和国内生产总值的数值较大,且随着年份的增加也有所增加

6 时间序列可视化

6.1 案例数据解释与展示

  • 数据来源于国家统计局的年度数据,其中国民经济核算的三次产业构成,变量分别有指标,三次产业贡献率,第一产业对GDP的贡献率,第二产业对GDP的贡献率,第三产业对GDP的贡献率
library(ggplot2)
library(dplyr)
library(tidyr)

data2<-read.csv("C:/Users/jenni/Desktop/产业.csv")
DT::datatable(data2,rownames = FALSE)
df <- data2 %>%
  select(指标, 第一产业对GDP的贡献率, 第二产业对GDP的贡献率, 第三产业对GDP的贡献率) %>%
  filter(指标 >= "2015年" & 指标 <= "2024年") %>%
  pivot_longer(
    cols = -指标,
    names_to = "产业类型",
    values_to = "贡献率"
  )

6.2 图形5——分面折线图

# 绘制分面折线图
ggplot(df, aes(x = 指标, y = 贡献率, color = 产业类型, group = 产业类型)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  facet_wrap(~产业类型, ncol = 1, scales = "free_y") +  # 垂直排列,y轴独立
  labs(
    title = "三大产业对GDP贡献率趋势(2015-2024)",
    x = "年份",
    y = "贡献率(%)",
    color = "产业类型"
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),  # x轴标签倾斜
    legend.position = "none",  # 移除图例(因为分面已说明)
    strip.text = element_text(size = 10, face = "bold")  # 分面标题样式
  )

  • 图形解读:

    分面折线图展示了2015年至2024年间三大产业对GDP贡献率的趋势。第二产业对GDP的贡献率是红色的线,这条线显示了第二产业对GDP的贡献率在这十年间的变化趋势。可以看到,整体上贡献率有波动,但总体保持在30%到40%之间。第三产业对GDP的贡献率是绿色的线,这条线显示了第三产业对GDP的贡献率,总体来看,第三产业的贡献率呈上升趋势,从2015年的约50%上升到2024年的接近60%。第一产业对GDP的贡献率是蓝色的线,这条线显示了第一产业对GDP的贡献率,第一产业的贡献率相对较低,且在这十年间有小幅波动,整体趋势较为平稳。