library(tidyverse)
library(ggiraphExtra)
library(ggpubr)
library(RColorBrewer)
library(DT)
library(e1071)
library(gridExtra)
library(scatterpie)
library(ggExtra)数据可视化期末报告
1 报告要求
期末实验报告由5章节5个图形组成,每个章节需要作一个图形。
每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。
案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。
每个章节的数据集合需要通过
datatable函数展示,并简要解释数据来源和变量意义。每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。
渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档
“8、期末报告”列中。评分标准:
每章节图形各20分
能有效输出图形和合理解释75%
数据独特性强10%
图形个性化强15%
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年出现一次,代表了太阳黑子活动的频繁期