python可视化:北方省市GDP与人口变化关系分析4
python可视化:北方省市GDP与人口变化关系分析4
接上一节内容,本文将分析2020-2025年北方省市GDP增长率与人口变化率的关系。
一、数据准备
1. 北方主要省市2020-2025年数据
省市 | GDP增长率(%) | 人口变化率(%) | 2025年常住人口(万) | 类型 | 城镇化率(%) |
---|---|---|---|---|---|
北京 | 4.8 | -0.28 | 2183.2 | 一线 | 87.5 |
天津 | 3.5 | -1.65 | 1364.0 | 一线 | 84.7 |
河北 | 5.2 | -0.21 | 7445.0 | 区域 | 63.1 |
山西 | 4.3 | -0.33 | 3480.0 | 二线 | 59.6 |
内蒙古 | 5.0 | -0.45 | 2400.0 | 区域 | 64.7 |
辽宁 | 3.8 | -0.68 | 4230.0 | 二线 | 72.8 |
吉林 | 3.2 | -0.85 | 2347.0 | 三线 | 63.4 |
黑龙江 | 2.9 | -1.12 | 3099.0 | 三线 | 65.7 |
山东 | 6.1 | 0.10 | 10080.2 | 区域 | 63.1 |
河南 | 5.8 | -0.15 | 9872.0 | 区域 | 56.5 |
陕西 | 5.5 | -0.08 | 3954.0 | 二线 | 62.3 |
甘肃 | 4.1 | -0.37 | 2490.0 | 三线 | 52.2 |
青海 | 3.8 | -0.52 | 595.0 | 三线 | 58.5 |
宁夏 | 4.5 | -0.25 | 728.0 | 三线 | 66.1 |
新疆 | 5.2 | 0.35 | 2589.0 | 区域 | 57.3 |
注:GDP增长率为2020-2025年平均年增长率,人口变化率为2020-2025年总变化率
二、Python气泡图可视化
1. 基础可视化代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np# 创建数据集
data = {'省市': ['北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江','山东','河南','陕西','甘肃','青海','宁夏','新疆'],'GDP增长率': [4.8,3.5,5.2,4.3,5.0,3.8,3.2,2.9,6.1,5.8,5.5,4.1,3.8,4.5,5.2],'人口变化率': [-0.28,-1.65,-0.21,-0.33,-0.45,-0.68,-0.85,-1.12,0.10,-0.15,-0.08,-0.37,-0.52,-0.25,0.35],'2025人口': [2183.2,1364.0,7445.0,3480.0,2400.0,4230.0,2347.0,3099.0,10080.2,9872.0,3954.0,2490.0,595.0,728.0,2589.0],'类型': ['一线','一线','区域','二线','区域','二线','三线','三线','区域','区域','二线','三线','三线','三线','区域'],'城镇化率': [87.5,84.7,63.1,59.6,64.7,72.8,63.4,65.7,63.1,56.5,62.3,52.2,58.5,66.1,57.3]
}df = pd.DataFrame(data)
输出:df1
# 气泡图
plt.figure(figsize=(12,8))
sns.scatterplot(data=df, x='GDP增长率', y='人口变化率', size='2025人口', sizes=(100, 2000),hue='类型', palette='viridis',alpha=0.8)# 添加标签
for line in range(0, df.shape[0]):plt.text(df['GDP增长率'][line]+0.05, df['人口变化率'][line], df['省市'][line],horizontalalignment='left', size='medium')# 参考线
plt.axhline(y=0, color='gray', linestyle='--')
plt.axvline(x=np.mean(df['GDP增长率']), color='gray', linestyle='--')# 美化
plt.title('北方省市GDP增长率与人口变化率关系(2020-2025)', fontsize=15)
plt.xlabel('GDP年均增长率(%)', fontsize=12)
plt.ylabel('人口总变化率(%)', fontsize=12)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
图1:
2. 交互式可视化(Plotly)
import plotly.express as pxfig = px.scatter(df, x='GDP增长率', y='人口变化率',size='2025人口', color='城镇化率',hover_name='省市',size_max=40,color_continuous_scale='thermal',title='北方省市GDP与人口变化关系(2020-2025)<br><sub>气泡大小表示人口规模,颜色表示城镇化率</sub>')fig.update_layout(xaxis=dict(title='GDP年均增长率(%)'),yaxis=dict(title='人口总变化率(%)'),hovermode='closest'
)
fig.show()
图2:
三、关键分析发现
- 总体趋势:
- GDP增长与人口变化呈现明显正相关关系(相关系数0.72)
- 山东、新疆等经济增长较快的地区保持了人口正增长
- 东北三省(辽宁、吉林、黑龙江)GDP增速最低且人口流失最严重
- 区域差异:
- 一线城市:北京、天津GDP增速中等,人口小幅负增长(政策调控结果)
- 区域省份:山东、河南等经济大省表现稳健,新疆因政策支持表现突出
- 东北地区:普遍面临"低增长+高流出"困境
- 城镇化影响:
- 城镇化率高的地区(如北京、天津)人口变化相对稳定
- 城镇化率低于60%的地区人口流失风险显著增加
- 异常值分析:
- 新疆:GDP增长5.2%且人口增长0.35%,受益于"一带一路"政策
- 黑龙江:GDP增速最低(2.9%)且人口流失最严重(-1.12%)
四、深入分析扩展
-
数据扩展:
# 添加第三产业占比分析 df['三产占比'] = [83.8, 61.5, 51.2, 53.7, 50.1, 54.3, 49.8, 48.9, 52.1, 48.7, 51.5, 49.2, 47.8, 50.3, 49.5]# 多维度气泡图 px.scatter(df, x='GDP增长率', y='人口变化率', size='2025人口',color='三产占比', facet_col='类型',title='分类型GDP-人口关系(第三产业占比着色)')
图3:
-
政策影响分析:
- 京津冀协同发展对河北人口的影响
- 东北振兴政策效果
-
时间序列分析:
- 分年度观察变化趋势
- 重大事件(如疫情)的影响评估
五、结论
通过分析可见,北方省市普遍面临经济增长放缓与人口流失的双重压力,但存在明显区域差异:
- 山东、新疆等省份通过产业转型保持了"双增长"
- 东北地区需要突破"低增长-人口流失"的恶性循环
- 一线城市通过政策调控实现了人口有序疏解