数据可视化期末报告

Author

何正熙

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

library(tidyverse)
library(ggiraphExtra)
library(ggpubr)
library(RColorBrewer)
library(DT)
library(e1071)
library(gridExtra)
library(scatterpie)
library(ggExtra)

2 类别数据可视化

2.1 案例数据解释与展示

该数据是人群对于高性能车和ai监督检测的调研数据

data1 <-  read.csv("shuju111.csv",fileEncoding = "GBK")
DT::datatable(head(data1),rownames = FALSE)

2.2 图形1——

layout(matrix(c(1,2,3,3),2,2,byrow=TRUE))   # 页面布局
par(mai=c(0.7,0.7,0.3,0.1),cex=0.7,cex.main=1,font.main=1,font.main=1)   # 设置图形边距和字体大小等

table(data1$性别) |> barplot(xlab="人数",ylab="性别",     # 绘制性别的条形图
   horiz=TRUE,                              # 水平排放各条
   density=30,angle=20,                      # 设置填充密度和密度线的角度
   col=c("grey80","grey50"),border="blue",  # 设置颜色向量
   main="(a) 水平条形图")                   # 添加标题

table(data1$年龄) |> barplot(xlab="年龄",ylab="人数",density=10,angle=200,
  col=2:7,border="red",main="(b) 垂直条形图")     # 绘制网购次数的条形图

table(data1$驾驶高性能车型培训) |> barplot(xlab="驾驶高性能车型培训",ylab="人数",cex.names=1.2,cex.lab=1.2,
  col=c("#DE2D26","#31A354","#3182BD","yellow","orange"),
  main="(c) 垂直条形图")  # 绘制满意度的条形图

  • 图形解读:从图中可以看出,本次调查人群中以女性偏多为主,年龄段主要集中在18-30岁,普片认为驾驶高性能车需要接受培训。

3 数据分布可视化

3.1 案例数据解释与展示

  • 该数据反映了各个省份的常住人口数、GDP、所属地理片区和面积大小等

  • 下面是探究各省份的面积大小的分布情况

data2 <-  read.csv("data1_1.csv",fileEncoding = "GBK")
datatable(data2,rownames = FALSE)
data2 <- as.data.frame(data2)

3.2 图形2——

mytheme<-theme(plot.title=element_text(size="12"), # 设置主标题字体大小
   axis.title=element_text(size=10),               # 设置坐标轴标签字体大小
   axis.text=element_text(size=9),                # 设置坐标轴刻度字体大小
   legend.text=element_text(size="8"))            # 设置图例字体大小

options(DT.options = list(pageLength = 6))


df <- data2
ggplot(df,aes(x=面积))+mytheme+
  geom_histogram(aes(y=..density..),fill="lightgreen",color="gray50",bins = 30)+
  geom_rug(size=0.2,color="blue3")+
  geom_density(color="blue2",size=0.7)+
  annotate("text",x=100,y=0.025,label=paste0("偏度系数 = ",round(skewness(df$面积),4)),size=4,col="red")+
  annotate("text",x=100,y=0.035,label=paste0("偏度系数 = ",round(kurtosis(df$面积),4)),size=4,col="red")+
  geom_vline(xintercept=mean(df$面积),linetype="twodash",size=0.6,color="red")+
  annotate("text",x=mean(df$面积),y=0.06,label=paste0("均值线 = ",round(mean(df$面积),2)),size=4)+
  geom_point(x=median(df$面积),y=0,shape=21,size=5,fill="yellow")

  • 图形解读:偏度系数均大于0,说明数据分布右偏,面积主要集中在小面积,大面积有个别极端值,说明大部分省份的面积大小分布都比较集中,存在个别省份的面积比较大

4 变量关系可视化

4.1 案例数据解释与展示

  • 计算常住人口、GDP、和面积大小的关系
datatable(data2,rownames = FALSE)

4.2 图形3——

df2 <- data2
ggCor(df2,whaw=1,    # 计算Pearson相关系数
  digits=4,                # 保留4为小数
  label=3,                 # 显示相关系数及其检验的P值
  mode=2,                  # 显示半角矩阵
  xangle=0)+              # 设置x轴标签角度
ggtitle("ggCor函数绘制的相关系数矩阵")

  • 图形解读:

  • 图中可以看出,GDP和常住人口的相关系数较大,相关系较高,且相关系数通过了置信水平为0.05的显著性检验,说明常住人口对GDP的影响较大

    面积和常住人口、GDP为负相关,但其相关系数没有通过置信水平为0.05的显著性检验,说明面积越大其常住人口和GDP不一定就越小,从现实中看,面积大的省份往往都是环境较恶劣且地理位置不占优势的地方,这不利于人口和经济的发展,并不意味着面积大人口数和GDP就小,而是面积大的省份的其他因素导致常住人口和GDP较低。

5 样本相似性可视化

5.1 案例数据解释与展示

  • 各奶茶咖啡品牌在全国各省的门店数量
data4 <-  read.csv("shuju333.csv",fileEncoding = "GBK")
datatable(data4,rownames = FALSE)
df3 <- data4 |> gather(上海市:青海省,key=省份,value=数量) |> 
  mutate(省份=fct_inorder(省份))
datatable(df3,rownames = FALSE)

5.2 图形4——

ggplot(df3,aes(x=省份,y=数量,group=品牌,color=品牌))+
  geom_line(linewidth=0.5)+   # 绘制折线
  geom_point(shape=21,size=2,fill="gray50")+          # 绘制点
  theme(legend.position=c(0.9,0.66),
        legend.text=element_text(size=7,color="blue4"),
        legend.direction="horizontal",                # 设置图例位置和摆放方向
        legend.background=element_rect(fill="grey90",color="grey"))+
  guides(color=guide_legend(nrow=8,title=NULL))+     # 设置图例摆放方式(8行,去掉图例标题)
  scale_x_discrete(labels=function(x) str_wrap(x,width=20)) # 设置x轴标签宽度

  • 图形解读:从平行坐标图可以明显看出蜜雪冰城、星巴克、瑞幸咖啡在全国各省的门店数量较多,其中蜜雪冰城在全国各省的分布都较多,星巴克在广东省的门店数量甚至超过了3000家,同时也可以看出广东省、江苏省、浙江省拥有的各品牌门店数量较多,位居全国前列。

6 时间序列可视化

6.1 案例数据解释与展示

  • 数据是1820-1869年太阳黑子的活动数量
data5 <-  read.csv("chap13.csv",fileEncoding = "GBK")
datatable(data5,rownames = FALSE)

6.2 图形5——

p1<-ggplot(data5,aes(x=year,y=太阳黑子活动数,color=太阳黑子活动数))+ # 设置x轴、y轴和线的颜色
  geom_line(size=0.8)+
  geom_point(aes(size=太阳黑子活动数),size=2)+     # 数值点的形状和大小
  mytheme+ggtitle("1820-1869年太阳黑子活动数图")
p1

  • 图形解读:从图中波动的时间间隔来看,该序列有明显的周期性,图中的波峰每间隔约10年出现一次,代表了太阳黑子活动的频繁期