data1_1 <- read.csv("C:/Users/pc/Desktop/数据可视化/数据/data1_1.csv", fileEncoding = "GBK")
DT::datatable(data1_1,rownames = FALSE)数据可视化期末报告
1 报告要求
期末实验报告由5章节5个图形组成,每个章节需要作一个图形。
每个章节选择作什么图自主选择,作图前补充完整图形标题名称,例如:图形1——多变量条形图。
案例数据自主收集,不同章节可以公用一个数据集。但同学间不允许使用相同数据集。
每个章节的数据集合需要通过
datatable函数展示,并简要解释数据来源和变量意义。每个输出图形后需要对图形作简要解读,最少需针对图形提出一个观点。
渲染html文件保留代码展示,6月22日前将发布网址提交至共享文档
“8、期末报告”列中。评分标准:
每章节图形各20分
能有效输出图形和合理解释75%
数据独特性强10%
图形个性化强15%
2 类别数据可视化
2.1 案例数据解释与展示
- 该数据为2014年北京、上海、天津和重庆各地区各行业的从业人数
2.2 图形1——环形图
library(tidyverse)
library(DT)
library(sjPlot) # 社会统计数据可视化
library(epade) # 3d数据图
library(ggiraphExtra)
library(gridExtra) # 为使用图形组合函数grid.arrange
library(treemap) # 树状图
library(vcd)
library(ggpubr)
library(RColorBrewer)
library(d3r) # 为了使用d3_nest函数
library(sunburstR)ggDonut(data1_1,aes(donuts=单位,count=北京),
labelposition=1,labelsize=2.5, # 设置标签位置和大小
xmin=2,xmax=4, # 设置x的最小位置和最大位置
title=" 北京") # 设置标题- 图形解读:制造业是北京市从业人数最多的行业,占比最大,达到36.8%。这表明制造业在北京市的经济中占有重要地位。其次是教育业,这与北京对教育的重视和教育资源丰富有关。第三是建筑业,与城市发展和基础建设有关。
- 北京市的就业结构以制造业、建筑业、房地产业和教育业为主,这些行业从业人数占比较高,显示出这些行业在北京市经济发展中的重要性。同时,住宿和餐饮业也占有一席之地,反映了北京市作为旅游和商业中心的特点。
3 数据分布可视化
3.1 案例数据解释与展示
- 该数据为浙江省2004-2022年城市建成区绿化覆盖率
data <- read.csv("C:/Users/pc/Desktop/数据可视化/数据/data.csv", fileEncoding = "GBK")
DT::datatable(data,rownames = FALSE)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")) # 设置图例字体大小
p<-ggplot(data=data,aes(x=城市建成区绿化覆盖率))+xlim(30,45) # 设置x轴值域
p+geom_histogram(bins=13,fill="lightgreen",color="gray50")+
# 指定分成15组
mytheme+ggtitle("(b) 分成13组")- 图形解读:直方图呈现出一个大致的正态分布形态,中间高,两边低,但右侧(高绿化覆盖率)的尾部较短。
- 从图中可以看出,这些年绿化覆盖率集中在40%到42%之间的有5个,集中在38%到40%之间的有4个。这可能反映上海市在城市绿化方面的努力与成果,绿化覆盖率在40%以上的数量较多,显示出上海市在提高城市绿化覆盖率方面取得了一定的成效。
4 变量关系可视化
4.1 案例数据解释与展示
- 该数据为2002-2019年上海市GDP值和第一、二、三产业值
data1_3 <- read.csv("C:/Users/pc/Desktop/数据可视化/数据/data1_3.csv", fileEncoding = "GBK")
DT::datatable(data1_3,rownames = FALSE)4.2 图形3——散点饼图
library(scatterpie)
scatterpie::geom_scatterpie(aes(x,y),cols=labels)$mapping
Aesthetic mapping:
* `x` -> `x`
* `y` -> `y`
$data
NULL
$cols
function (object, ...)
UseMethod("labels")
<bytecode: 0x0000014c0b00e430>
<environment: namespace:base>
$pie_scale
[1] 1
$sorted_by_radius
[1] FALSE
$legend_name
[1] "type"
$long_format
[1] FALSE
$label_radius
NULL
$label_show_ratio
[1] TRUE
$label_threshold
[1] 0
$donut_radius
NULL
$bg_circle_radius
NULL
attr(,"class")
[1] "layer_scatterpie"
df <- data1_3 |> mutate(GDP=data1_3$GDP/5000)
f<-c("第一产业","第二产业","第三产业")
labels<-factor(f,ordered=T,levels=f) # 构建有序标签
ggplot()+geom_scatterpie(aes(x=年份,y=GDP),data=df, # 绘制散点饼图
cols=labels, # 设置饼图填充颜色
pie_scale=1.5,legend_name="产业") # 设置饼的大小和图例名称- 图形解读:从图中可以看出,随着时间的推移,上海市的GDP总量呈现出明显的增长趋势。第一产业(红色)的占比非常小,且变化不大,反映了农业在现代城市经济中的比重较小。图中显示了上海市经济结构的变化,第二产业显示出稳定的增长趋势,其占比逐渐增大,这表明第二产业,如制造业和建筑业,在上海市经济中也扮演着重要角色。第三产业虽然有所增加,但其增加速度低于第二产业。总而言之,第二产业在上海经济中仍占据主体地位,这种变化可能与城市化进程、产业结构升级以及经济发展模式的转变有关。
5 样本相似性可视化
5.1 案例数据解释与展示
- 该数据为2014年北京、上海、天津和重庆各地区各行业的从业人数
DT::datatable(data1_1,rownames = FALSE)5.2 图形4——星图
mat<-data1_1%>%select(-c(单位))%>%as.matrix() # 转换成矩阵
rownames(mat)=data1_1[,1] # 设置矩阵行名称
stars(mat,
full=TRUE, # 绘制出满圆
scale=TRUE, # 将数据缩放到[0,1]的范围
nrow=3,
len=1, # 设置半径或线段长度的比例
frame.plot=TRUE, # 添加边框
draw.segments=TRUE,key.loc=c(7,3.5), # 绘制圆弧图,并设置位置
mar=c(0.5,0.1,0.1,0.1), # 设置图形边界
cex=0.6) # 设置标签字体大小- 图形解读:从图中可知,在制造业中,四个城市的的从业人数相差不大;在建筑业和居民服务等其他服务业中,重庆占比明显大于其它三个城市;在房地产业和教育业中,北京占比最大;
- 总体来看,制造业、建筑业和教育业在四个城市中都是重要的行业,而房地产业、住宿和餐饮业以及居民服务、修理和其他服务业在不同城市占比有所不同,这与这些城市在经济发展和产业结构上的偏向/地方优势有关。
6 时间序列可视化
6.1 案例数据解释与展示
- 该数据为2002-2019年上海市GDP值和第一、二、三产业值
DT::datatable(data1_3,rownames = FALSE)6.2 图形5——折线图
# 选择绘图变量并融合为长格式
df1<-data1_3 |> select(年份,GDP,第三产业) |>
gather(GDP,第三产业,key="指标",value="指标值")
df2<-data1_3 |> select(年份,第一产业:第三产业) |>
gather(2:4,key="指标",value="指标值") |>
mutate(指标=fct_inorder(指标))
# 设置绘图主题
mytheme<-theme(legend.position=c(0.2,0.8), # 将图例放在图内
legend.background=element_blank()) # 移除图例整体边框
p1<-ggplot(df1,aes(x=年份,y=指标值,color=指标))+ # 设置x轴、y轴和线的颜色
geom_line(size=0.8)+
geom_point(aes(shape=指标),size=2)+ # 数值点的形状和大小
mytheme+ggtitle("(a) GDP与第三产业的折线图")
p2<-p1 %+% df2+ggtitle("(b) 三次产业的折线图")
gridExtra::grid.arrange(p1,p2,ncol=2)- 图形解读:
- 图(a)
红色线(GDP):表示上海市GDP总值,从图中可以看出,GDP值在这段时间内呈现出显著的增长趋势,尤其是在2010年之后增长速度加快。
蓝色线(第三产业):表示第三产业的值,同样显示出增长趋势,但增长速度略低于GDP的增长速度。这表明第三产业在上海市经济中占有重要地位,并且随着时间的推移,其贡献也在逐渐增加。
图(b)
红色线(第一产业):表示第一产业的值,从图中可以看出,第一产业的值在整个时间段内变化不大,几乎保持在一个较低的水平。这可能反映了农业等第一产业在上海市经济中的比重较小。
绿色线(第二产业):表示第二产业的值,显示出稳定的增长趋势,尤其是在2010年之后增长速度加快。这表明第二产业,如制造业和建筑业,在上海市经济中也扮演着重要角色,可能与上海市的工业化和城市化进程有关。
蓝色线(第三产业):与图(a)中的蓝色线相同,表示第三产业的值,显示出稳定的增长趋势。整体来看,上海市的经济结构正在从以第二产业为主逐渐转向以第三产业为主,这反映了经济结构的优化和升级。