【数据可视化】中国历年GDP数据可视化分析:Python + Pyecharts 深度洞察(含完整数据、代码)

🧑 博主简介:曾任某智慧城市类企业算法总监,CSDN / 稀土掘金 等平台人工智能领域优质创作者。
目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。


一、引言

在经济学中,GDP(国内生产总值)是衡量一个国家经济状况的重要指标。本文将使用Python的Pyecharts库对中国历年GDP数据进行可视化分析,包括产业构成、GDP时空热力图、GDP总量与人均GDP双轴渐变折线图、行业雷达图、产业变迁热力图以及交互表格展示。

二、环境准备

首先,确保安装了Pyecharts库:

复制代码
pip install pyecharts

三、数据加载与预处理

ini 复制代码
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType

# 读取数据
df = pd.read_csv('中国历年的GDP数据.csv', encoding='gb18030')
df = df.dropna(subset=['GDP'])
for col in df.columns[1:]:
    df[col] = pd.to_numeric(df[col], errors='coerce')

# 反向排序,让时间轴从小到大
df = df[::-1].reset_index(drop=True)

四、可视化分析

4.1 产业构成玫瑰图(2024年最新)

less 复制代码
rose = (
    Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))
    .add("", [list(z) for z in zip(['第一产业', '第二产业', '第三产业'], df.iloc[-1][['第一产业':'第三产业'].tolist()))],
        radius=["20%", "75%"], rosetype="area")
    .set_global_opts(title_opts=opts.TitleOpts(title="2024年产业构成·玫瑰绽放"))
)
rose.render('4_rose_2024.html')

4.2 GDP时空热力图(假想省级分布)

ini 复制代码
fake_map = [('北京', 4.98), ('上海', 5.39), ('广东', 14.16), ('江苏', 13.7), ('浙江', 9.01), ('山东', 9.86), ('四川', 6.47), ('河南', 6.36), ('湖北', 6.00), ('福建', 5.78), ('湖南', 5.32), ('安徽', 5.06), ('河北', 4.75), ('陕西', 3.55), ('江西', 3.42), ('辽宁', 3.26), ('重庆', 3.22), ('云南', 3.15), ('广西', 2.86), ('内蒙古', 2.63), ('山西', 2.55), ('贵州', 2.27), ('新疆', 2.05), ('天津', 1.80), ('黑龙江', 1.65), ('吉林', 1.44), ('甘肃', 1.30), ('海南', 0.79), ('宁夏', 0.55), ('青海', 0.40), ('西藏', 0.28)]
map_bar = (
    Map(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))
    .add("2024 GDP(亿元)", fake_map, "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2024省级GDP热力图"),
        visualmap_opts=opts.VisualMapOpts(max_=15, is_piecewise=True)
    )
)
map_bar.render('5_map_bar.html')

4.3 GDP总量 & 人均双轴渐变折线图

less 复制代码
line = (
    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))
    .add_xaxis(df['时间'].astype(str).tolist())
    .add_yaxis("GDP总量(亿元)", df['GDP'].tolist(), is_smooth=True)
    .add_yaxis("人均GDP(元)", df['人均GDP'].tolist(), yaxis_index=1, is_smooth=True)
    .extend_axis(yaxis=opts.AxisOpts(name="人均GDP"))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="GDP总量 & 人均GDP双轴渐变折线图"),
        tooltip_opts=opts.TooltipOpts(trigger="axis")
    )
)
line.render('6_gdp_line.html')

4.4 行业雷达图(2021-2024年六维)

css 复制代码
latest = df.iloc[-1]
latest1 = df.iloc[-2]
latest2 = df.iloc[-3]
radar = Radar(bg_cfg)
schema = [    {"name": "金融业", "max": 100000},    {"name": "房地产", "max": 100000},    {"name": "工业", "max": 500000},    {"name": "批发零售", "max": 150000},    {"name": "住宿餐饮", "max": 30000},    {"name": "农林牧渔", "max": 100000}]
radar.add_schema(schema)
radar.add("2022", [[latest2['GDP:金融业'], latest2['GDP:房地产业'], latest2['GDP:工业'],
                    latest2['GDP:批发和零售业'], latest2['GDP:住宿和餐饮业'], latest2['GDP:农林牧渔业']]],
          color="#9bff59")
radar.add("2023", [[latest1['GDP:金融业'], latest1['GDP:房地产业'], latest1['GDP:工业'],
                    latest1['GDP:批发和零售业'], latest1['GDP:住宿和餐饮业'], latest1['GDP:农林牧渔业']]],
          color="#59dbff")
radar.add("2024", [[latest['GDP:金融业'], latest['GDP:房地产业'], latest['GDP:工业'],
                    latest['GDP:批发和零售业'], latest['GDP:住宿和餐饮业'], latest['GDP:农林牧渔业']]],
          color="#ff59bf")
radar.set_global_opts(title_opts=opts.TitleOpts(title="2022-2024行业六维雷达"))
radar.render('7_radar.html')

4.5 产业变迁热力图:2015-2024

ini 复制代码
recent_10_years = df.tail(10)

# 创建折线图
line3 = (
    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))
    .add_xaxis(recent_10_years['时间'].astype(str).tolist())
    .add_yaxis("第一产业", recent_10_years['第一产业'].tolist(), is_smooth=True)
    .add_yaxis("第二产业", recent_10_years['第二产业'].tolist(), is_smooth=True)
    .add_yaxis("第三产业", recent_10_years['第三产业'].tolist(), is_smooth=True)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="近10年三大产业GDP变化趋势"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        yaxis_opts=opts.AxisOpts(name="GDP(亿元)"),
        legend_opts=opts.LegendOpts(pos_left="right")
    )
)

# 渲染折线图
line.render("recent_10_years_industry_trend.html")

4.6 交互表格:最新5年核心指标

less 复制代码
table = Table(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color="#000"))
headers = df.tail(5).columns.tolist()
rows = df.tail(5).values.tolist()
table.add(headers, rows)
table.set_global_opts(title_opts=opts.ComponentTitleOpts(title="近五年核心指标"))
table.render('9_table.html')

五、可视化大屏

ini 复制代码
page = Page(layout=Page.DraggablePageLayout)
page.add(rose, map_bar, line, radar, heat, table)
page.set_global_opts(title_opts=opts.TitleOpts(title="中国历年GDP数据可视化大屏"))
page.render("china_gdp_dashboard.html")

六、分析总结

通过上述可视化分析,我们可以清晰地看到中国历年GDP的变化趋势和产业构成。玫瑰图展示了2024年的产业构成,地图和柱状图展示了GDP的时空分布,双轴折线图和雷达图则分别展示了GDP总量与人均GDP的变化以及各行业的GDP贡献。

希望这篇文章能帮助您更好地理解和分析中国历年GDP数据。如果您有任何问题或建议,欢迎在评论区留言!🎉


如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)

期待与您一起交流,共同探索AI的更多可能!

相关推荐
杨超越luckly1 天前
HTML应用指南:利用GET请求获取全国小米之家门店位置信息
前端·arcgis·html·数据可视化·shp
gyratesky1 天前
如何实现高性能的网格渲染和单体拾取
前端·数据可视化
大数据魔法师2 天前
Matplotlib(二)- Matplotlib简单绘图
matplotlib·数据可视化
德育处主任2 天前
p5.js 加载 3D 模型(loadModel)
前端·数据可视化·canvas
云天徽上3 天前
【数据可视化-74】电信用户流失数据可视化分析:Python + Pyecharts 炫酷大屏(含完整的数据,代码)
开发语言·python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts
云天徽上3 天前
【数据可视化-75】北京密云区2025年7月暴雨深度分析:Python + Pyecharts 炫酷大屏可视化(含完整数据、代码)
开发语言·python·信息可视化·数据可视化·pyecharts
德育处主任3 天前
p5.js 从零开始创建 3D 模型,createModel入门指南
前端·数据可视化·canvas
德育处主任3 天前
p5.js 三角形triangle的用法
前端·数据可视化·canvas
云天徽上4 天前
【数据可视化】🌩️ 北京密云区2025年7月暴雨深度分析:Python + Pyecharts 炫酷大屏可视化(包含完整数据、代码)
数据可视化