数据可视化期末报告

Author

221527215曾允静

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 该数据是从中国城市统计数据库中获取的北京市2002-2014年的数据。该数据包含以下11个变量:

  • date -年份

  • t1-总人口数

  • t2-在岗职工平均工资

  • t3-GDP

  • t4-人均GDP

  • t5-GDP增长率

  • t6-第一产业占GDP的比重

  • t7-第二产业占GDP的比重

  • t8-第三产业占GDP的比重

  • t9-社会消费品零售总额

  • t10-行政区域土地面积

data<-read_csv("data.csv",
               col_types = cols(
                   日期 = col_date(format = "%Y") 
                 ) )
colnames(data) <- c("date", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "t10")

datatable(data,rownames = FALSE)

2.2 图形1——帕累托图

palette<-rev(brewer.pal(4,"Reds"))        # 设置调色板
# 绘制条形图
p <- ggplot(data, aes(x = date, y = t3)) +                
  geom_col(
    width = 0.8,
    fill = rep(palette, length.out = nrow(data)),  # 循环使用颜色
    color = "grey50"
  ) +
  scale_fill_manual(values = palette) +
  geom_text(aes(x=date,y=t3,label=t3,vjust=-0.5),size=3,color="gray50")+                      # 添加数值标签,垂直调整标签位置
   ylab("GDP")+               # 设置y轴标签 
  theme(axis.text.y=element_text(angle=90,hjust=0.5,vjust=0.5))+     # 调整y轴标签角度
  theme(legend.position="none") +       # 删除图例
  ggtitle("2002-2014年GDP的帕累托图")
p

  • 图形解读:由上图可得,在2002-2014年间北京市的GDP呈上升趋势,每年都在增长,且增长幅度比较稳定。

3 数据分布可视化

3.1 案例数据解释与展示

  • CO2是R自带的数据集,该数据集记录了植物在不同二氧化碳浓度下的吸收率实验数据,常用于统计建模和可视化演示。该数据集包含以下5个变量:

    1.Plant - 实验植物的编号(唯一标识)

    2.Type - 植物来源类型(两种生态型)

    3.Treatment - 实验处理条件(是否冷藏处理)

    4.conc - 二氧化碳浓度(单位:μL/L)

    5.uptake - 二氧化碳吸收率(单位:μmol/m²·s)

data2 = CO2
datatable(head(data2, 20), rownames = FALSE)

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

library(ggplot2)
library(e1071)  # 用于计算偏度和峰度
library(DT)     # 用于交互式表格

conc_skew <- skewness(data2$conc, na.rm = TRUE)
conc_kurt <- kurtosis(data2$conc, na.rm = TRUE)
conc_mean <- mean(data2$conc, na.rm = TRUE)
conc_median <- median(data2$conc, na.rm = TRUE)

ggplot(data = data2, aes(x = conc)) +
  geom_histogram(aes(y = ..density..),fill = "lightgreen",color = "gray50",bins = 20,alpha = 0.7) +
  geom_rug(size = 0.2, color = "blue3") + # 密度曲线
  geom_density(color = "blue2", size = 0.7, adjust = 1.5) + 
  annotate("text",x = max(data2$conc) * 0.7,y = 0.003,label = sprintf("偏度 = %.2f\n峰度 = %.2f", conc_skew, conc_kurt),size = 4,hjust = 0) + # 均值线
  geom_vline(xintercept = conc_mean,linetype = "twodash",size = 0.6,color = "red"
) +
  annotate("text",x = conc_mean,y = 0.0035,label = paste0("均值 = ", round(conc_mean, 1)),size = 3,color = "red") + # 中位数点
  geom_point(aes(x = conc_median, y = 0),shape = 21,size = 4,fill = "yellow",color = "black") +    # 坐标轴和标题
  labs(title = "CO2浓度分布分析",x = "CO2浓度 (μL/L)",y = "密度") +
  # 主题设置
  theme_minimal() +theme(plot.title = element_text(hjust = 0.5, face = "bold"),panel.grid.minor = element_blank())

  • 图形解读:在CO2浓度小于250μL/L时,密度呈小幅度上升趋势,而在大于250μL/L时,密度呈下降趋势。

4 变量关系可视化

4.1 案例数据解释与展示

  • 该数据是从中国城市统计数据库中获取的北京市2002-2014年的数据。该数据包含以下11个变量:

  • date -年份

  • t1-总人口数

  • t2-在岗职工平均工资

  • t3-GDP

  • t4-人均GDP

  • t5-GDP增长率

  • t6-第一产业占GDP的比重

  • t7-第二产业占GDP的比重

  • t8-第三产业占GDP的比重

  • t9-社会消费品零售总额

  • t10-行政区域土地面积

data<-read_csv("data.csv",
               col_types = cols(
                   日期 = col_date(format = "%Y") 
                 ) )
colnames(data) <- c("date", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "t10")

datatable(data,rownames = FALSE)

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

p1 <- ggplot(data=data,aes(x=t3,y=t4))+
     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(t3),y=mean(t4)),shape=21,fill="yellow",size=4)+   # 绘制均值点
     ggtitle("散点图+地毯图+线性拟合+边际图")
 
 ggMarginal(p1,type="densigram",color="grey50",fill="lightskyblue",alpha=0.5)

  • 图形解读:图形由散点图、地毯图、线性拟合和边际图组成,能够更多面的分析数据。散点大部分在同一条直线附近,且总体呈上升趋势。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 该数据是从中国城市统计数据库中获取的2002-2022年北京天津上海三个城市GDP的数据。该数据包含以下3个变量:

  • date -年份

  • t1-北京

  • t2-天津

  • t3-上海

data<-read_csv("data2.csv",
               col_types = cols(
                   日期 = col_date(format = "%Y") 
                 ) )
colnames(data) <- c("date", "p1", "p2", "p3")

datatable(data,rownames = FALSE)

5.2 图形4——雷达图

mytheme<-theme(legend.position="right",    # 设置标题位置
   axis.text.x=element_text(size=9,color="blue4"))
                                  # 设置坐标轴标签字体大小、颜色和和角度

ggRadar(data=data,aes(group=date),    # 按地区分组
  rescale=FALSE,                        # 数据不归一化
  ylim=c(0,8),                   # 设置y轴范围
  alpha=0,                              # 设置颜色透明度
  size=2)+                              # 设置点的大小
  mytheme+xlab("指标")+ylab("数值")+  # 设置x轴和y轴标签
  ggtitle("原始数据雷达图") # 添加标题

  • 图形解读:由图可知,三个指标中t3最大,t1次之,t2最小。且绝大多数时候三个城市的GDP都随着年份增加,除了t2在后期有所减小。

6 时间序列可视化

6.1 案例数据解释与展示

  • 该数据是从中国城市统计数据库中获取的北京市2002-2014年的数据。该数据包含以下11个变量:

  • date -年份

  • t1-总人口数

  • t2-在岗职工平均工资

  • t3-GDP

  • t4-人均GDP

  • t5-GDP增长率

  • t6-第一产业占GDP的比重

  • t7-第二产业占GDP的比重

  • t8-第三产业占GDP的比重

  • t9-社会消费品零售总额

  • t10-行政区域土地面积

data<-read_csv("data.csv",
               col_types = cols(
                   日期 = col_date(format = "%Y") 
                 ) )
colnames(data) <- c("date", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "t10")

datatable(data,rownames = FALSE)

6.2 图形5——折线图

f1<-data |> select(date,t3,t8) |> 
  gather(t3,t8,key="指标",value="指标值") 
f2<-data |> select(date,t6,t8) |> 
  gather(2:3,key="指标",value="指标值") |> 
  mutate(指标=fct_inorder(指标))

mytheme<-theme(legend.position=c(0.8,0.3),              # 将图例放在图内
         legend.background=element_blank())             # 移除图例整体边框

p1<-ggplot(f1,aes(x=date,y=指标值,color=指标))+ # 设置x轴、y轴和线的颜色
  geom_line(size=0.8)+
  geom_point(aes(shape=指标),size=2)+     # 数值点的形状和大小
  mytheme+ggtitle("(a) GDP与第三产业的折线图")

p2<-p1 %+% f2+ggtitle("(b) 第一产业与第三产业的折线图")

gridExtra::grid.arrange(p1,p2,ncol=2)

  • 图形解读:由图可知,在2002-2014年间,GDP都是呈现上升趋势,而第三产业占GDP的比重几乎不发生变化,都是第三产业总体来说也是逐渐递增的。第一产业占GDP的比重也是呈现上升趋势,且远高于第三产业占GDP的比重。