数据可视化期末报告

Author

221527211詹怡霖

1 报告要求

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

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

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

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

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

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

  • 评分标准:

    • 每章节图形各20分

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

    • 数据独特性强10%

    • 图形个性化强15%

2 类别数据可视化

2.1 案例数据解释与展示

  • 该数据为2014年北京、上海、天津和重庆各地区各行业的从业人数
data1_1 <- read.csv("C:/Users/pc/Desktop/数据可视化/数据/data1_1.csv", fileEncoding = "GBK")
DT::datatable(data1_1,rownames = FALSE)

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)中的蓝色线相同,表示第三产业的值,显示出稳定的增长趋势。整体来看,上海市的经济结构正在从以第二产业为主逐渐转向以第三产业为主,这反映了经济结构的优化和升级。