预计阅读 4 分钟

湖南省统计年鉴(区县级)






加载湖南省区县级行政区划边界地图数据

代码
hunan_geo <- sf::read_sf("data/湖南省.json")
hunan_geo
## Simple feature collection with 122 features and 9 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 108.8 ymin: 24.64 xmax: 114.3 ymax: 30.13
## Geodetic CRS:  WGS 84
## # A tibble: 122 × 10
##    adcode name   childrenNum level    parent     subFeatureIndex center centroid
##     <int> <chr>        <int> <chr>    <chr>                <int> <list> <list>  
##  1 430102 芙蓉区           0 district "{ \"adco…               0 <dbl>  <dbl>   
##  2 430103 天心区           0 district "{ \"adco…               1 <dbl>  <dbl>   
##  3 430104 岳麓区           0 district "{ \"adco…               2 <dbl>  <dbl>   
##  4 430105 开福区           0 district "{ \"adco…               3 <dbl>  <dbl>   
##  5 430111 雨花区           0 district "{ \"adco…               4 <dbl>  <dbl>   
##  6 430112 望城区           0 district "{ \"adco…               5 <dbl>  <dbl>   
##  7 430121 长沙县           0 district "{ \"adco…               6 <dbl>  <dbl>   
##  8 430181 浏阳市           0 district "{ \"adco…               7 <dbl>  <dbl>   
##  9 430182 宁乡市           0 district "{ \"adco…               8 <dbl>  <dbl>   
## 10 430202 荷塘区           0 district "{ \"adco…               0 <dbl>  <dbl>   
## # ℹ 112 more rows
## # ℹ 2 more variables: acroutes <list>, geometry <MULTIPOLYGON [°]>

加载 2023 年湖南省各区县的数据(数据来自湖南省统计局发布的统计年鉴 2024)

代码
hunan_book <- readxl::read_xlsx(path = "data/湖南省各区县统计数据.xlsx", sheet = "2023") 
hunan_book
## # A tibble: 124 × 13
##    市州   区县   行政编码 年末常住人口 年末常住人口2020 常住人口变化 城镇化率
##    <chr>  <chr>     <dbl>        <dbl>            <dbl>        <dbl>    <dbl>
##  1 长沙市 芙蓉区   430102         64.4             64.3         0.14    100  
##  2 长沙市 天心区   430103         89.4             83.7         5.68     99.1
##  3 长沙市 岳麓区   430104        167.             153.         13.6      94.6
##  4 长沙市 开福区   430105         88.2             82.2         6.03     96.6
##  5 长沙市 雨花区   430111        129.             127.          2.25     97.5
##  6 长沙市 望城区   430112         98.4             89.1         9.29     79.8
##  7 长沙市 长沙县   430121        143.             138.          5.84     75.1
##  8 长沙市 浏阳市   430181        144.             143.          0.61     63.8
##  9 长沙市 宁乡市   430182        128.             126.          1.74     61.9
## 10 株洲市 荷塘区   430202         34.3             34.9        -0.57     98.2
## # ℹ 114 more rows
## # ℹ 6 more variables: 地区生产总值 <dbl>, 人均GDP <dbl>, 房地产开发投资 <dbl>,
## #   固定资产投资增速 <dbl>, 社会消费品零售总额 <dbl>,
## #   社会消费品零售总额增速 <dbl>
  • 年末常住人口(单位:万人)
  • 年末常住人口2020(单位:万人)
  • 常住人口变化:2023 年减去2020年的(单位:万人)
  • 城镇化率(单位:%)
  • 地区生产总值(单位:万元)
  • 人均GDP(单位:元)
  • 房地产开发投资(单位:万元)
  • 固定资产投资增速(单位:%)
  • 社会消费品零售总额(单位:亿元)
  • 社会消费品零售总额增速(单位:%)
代码
hunan_data <- merge(hunan_geo[, c("name", "adcode")], hunan_book, by.x = "adcode", by.y = "行政编码", all.x = T, sort = F) 
hunan_data
## Simple feature collection with 122 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 108.8 ymin: 24.64 xmax: 114.3 ymax: 30.13
## Geodetic CRS:  WGS 84
## First 10 features:
##    adcode   name   市州   区县 年末常住人口 年末常住人口2020 常住人口变化
## 1  430102 芙蓉区 长沙市 芙蓉区        64.42            64.28         0.14
## 2  430103 天心区 长沙市 天心区        89.40            83.72         5.68
## 3  430104 岳麓区 长沙市 岳麓区       166.51           152.86        13.65
## 4  430105 开福区 长沙市 开福区        88.21            82.18         6.03
## 5  430111 雨花区 长沙市 雨花区       128.90           126.65         2.25
## 6  430112 望城区 长沙市 望城区        98.43            89.14         9.29
## 7  430121 长沙县 长沙市 长沙县       143.47           137.63         5.84
## 8  430181 浏阳市 长沙市 浏阳市       143.73           143.12         0.61
## 9  430182 宁乡市 长沙市 宁乡市       128.24           126.50         1.74
## 10 430202 荷塘区 株洲市 荷塘区        34.33            34.90        -0.57
##    城镇化率 地区生产总值 人均GDP 房地产开发投资 固定资产投资增速
## 1    100.00     12720538  196396         933901              0.2
## 2     99.09     13645993  154559        2191333              6.7
## 3     94.59     20045470  121739        4977649             -6.6
## 4     96.62     12403049  141184        2186460              6.7
## 5     97.50     23136455  180050        2414835            -22.8
## 6     79.81     11536966  118498        2625063              9.1
## 7     75.14     21327107  149026        2608861              5.3
## 8     63.76     17031662  118144         395888            -19.8
## 9     61.93     13328303  104119         553021            -15.0
## 10    98.19      2866225   83417         223008            -17.5
##    社会消费品零售总额 社会消费品零售总额增速                       geometry
## 1              719.59                  7.423 MULTIPOLYGON (((113 28.19, ...
## 2              503.23                  7.997 MULTIPOLYGON (((113 28.2, 1...
## 3              652.33                  4.364 MULTIPOLYGON (((112.7 28.21...
## 4              657.74                  8.562 MULTIPOLYGON (((113 28.39, ...
## 5              813.32                  5.879 MULTIPOLYGON (((113 28.01, ...
## 6              504.34                  4.174 MULTIPOLYGON (((113 28.28, ...
## 7              704.63                  6.185 MULTIPOLYGON (((113.1 28.22...
## 8              484.01                  6.200 MULTIPOLYGON (((113.2 28.01...
## 9              522.48                  5.087 MULTIPOLYGON (((112.7 28.49...
## 10              99.34                  6.350 MULTIPOLYGON (((113.3 27.99...

社会消费品零售总额、房地产开发投资、人均GDP的关系。房地产开发投资越多,经济发展的拉动效果越强。越多人买房支出越多,意味着另一部分人收入越多,收入越多越有能力去消费,带动社会消费品零售总额增加,进而带动地区生产总值增长,人均GDP增加。

代码
# custom function
my_scale <- function(x) scales::rescale(x, to = c(5, 20))
library(echarts4r)
hunan_book |> 
  dplyr::mutate(市县 = paste(市州, 区县, sep = '·')) |> 
  dplyr::group_by(市州) |> 
  e_charts(x = 房地产开发投资) |> 
  e_scatter(serie = 社会消费品零售总额, size = 人均GDP, bind = 市县, scale = my_scale) |> 
  e_tooltip(formatter = htmlwidgets::JS("
          function(params) {
              return (
                  '<strong>' + params.name + '</strong>' +
                  '<br />房地产开发投资: ' + params.value[0] +
                  '<br />社会消费品零售总额: ' + params.value[1].toFixed(2) +
                  '<br />人均GDP: ' + params.value[2] + '元'
              )
          }
          ")) |> 
  e_x_axis(name = "房地产开发投资(万元)", nameLocation = "center", nameGap = 30) |> 
  e_y_axis(name = "社会消费品零售总额(亿元)", nameLocation = "center", nameGap = 35) |> 
  e_theme("vintage")

长沙是湖南的省会城市,辖下各区的房地产开发投资和社会消费品零售总额相比于其他市都是独树一帜的存在,这是很明显的区域发展不平衡。这种城市化带来的不平衡应该说是预期中的,如果对比日本、美国这样的发达国家的城市来看的话。

除去长沙,岳阳是凸出来的第二个城市,它辖下的岳阳楼区的社会消费品零售总额很高,这应该是旅游业带来的贡献。

代码
library(ggplot2)
library(patchwork)
p1 <- ggplot(data = hunan_book, aes(x = 固定资产投资增速, y = 社会消费品零售总额增速)) +
  geom_point(aes(size = 人均GDP), alpha = 0.5) +
  geom_smooth(se = FALSE, method = lm) +
  coord_equal(ratio = 1) +
  theme_light()

p2 <- ggplot(data = hunan_book, aes(x = 常住人口变化, y = 房地产开发投资/10000)) +
  geom_point(aes(size = 人均GDP), alpha = 0.5, show.legend = F) +
  geom_smooth(se = FALSE, method = lm) +
  theme_light()

p3 <- ggplot(data = hunan_book, aes(x = 社会消费品零售总额, y = 地区生产总值/10000)) +
  geom_point(aes(size = 人均GDP), alpha = 0.5, show.legend = F) +
  geom_smooth(se = FALSE, method = lm) +
  theme_light()

p1 / (p2 | p3)
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
消费与投资的关系

图 1: 消费与投资的关系

代码
library(corrplot)
x = hunan_book[, -c(1:3)]
M = cor(x)
set.seed(0)
corrplot(M)
变量之间的相关性

图 2: 变量之间的相关性

房地产开发投资、社会消费品零售总额、地区生产总值、人均GDP相关性非常高。

年末常住人口越多,社会消费品零售总额越高,这自不必说。 常住人口变化也影响社会消费品零售总额,同理。 不过,常住人口变化对房地产开发投资的影响更大。

城镇化率越高意味着城市发展水平高,社会消费品零售总额越高,第三产业服务业占比越高。

代码
library(leaflet)
# 连续型调色板
# pal <- colorNumeric("Spectral", domain = NULL, reverse = TRUE)
# 分段离散调色板
pal <- colorBin("Spectral", bins = c(0, 10, 30, 50, 70, 100, 200), domain = NULL, reverse = TRUE)
# 将数据绘制到地图上
leaflet(hunan_data) |>
  addTiles(
    # 来自 leafletCN::amap()
    urlTemplate = "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
    options = tileOptions(tileSize = 256, minZoom = 3, maxZoom = 17),
    attribution = "&copy; <a href=\"http://amap.com\">amp.com</a >"
  ) |> 
  addPolygons(
    stroke = F, # 不显示各个区县的边界线
    weight = 1, # 设置边界线宽度
    fillOpacity = 0.5, # 填充多边形的透明度
    fillColor = ~ pal(年末常住人口),
    label = lapply(paste0(
      "区县:", "<b>", hunan_data$name, "</b>", "<br/>",
      "常住人口(万):", hunan_data$年末常住人口
    ), htmltools::HTML)
  ) |>
  addLegend(
    position = "bottomright", title = "常住人口(万)",
    pal = pal, values = ~年末常住人口, opacity = 1.0
  ) |>
  addScaleBar(position = "bottomleft")
200 km
100 mi
常住人口(万)
0 – 10
10 – 30
30 – 50
50 – 70
70 – 100
100 – 200
代码
# 分段离散调色板
pal <- colorBin("Spectral", bins = c(-5, -2, 0, 2, 5, 10, 15), domain = NULL, reverse = TRUE)
# 将数据绘制到地图上
leaflet(hunan_data) |>
  addTiles(
    # 来自 leafletCN::amap()
    urlTemplate = "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
    options = tileOptions(tileSize = 256, minZoom = 3, maxZoom = 17),
    attribution = "&copy; <a href=\"http://amap.com\">amp.com</a >"
  ) |> 
  addPolygons(
    stroke = F, # 不显示各个区县的边界线
    weight = 1, # 设置边界线宽度
    fillOpacity = 0.5, # 填充多边形的透明度
    fillColor = ~ pal(常住人口变化),
    label = lapply(paste0(
      "区县:", "<b>", hunan_data$name, "</b>", "<br/>",
      "常住人口(万):", hunan_data$年末常住人口, "<br/>",
      "人口变化(万):", hunan_data$常住人口变化
    ), htmltools::HTML)
  ) |>
  addLegend(
    position = "bottomright", title = "人口变化(万)",
    pal = pal, values = ~常住人口变化, opacity = 1.0
  ) |>
  addScaleBar(position = "bottomleft")
200 km
100 mi
人口变化(万)
-5 – -2
-2 – 0
0 – 2
2 – 5
5 – 10
10 – 15