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

发布于:2025-08-02 ⋅ 阅读:(12) ⋅ 点赞:(0)

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述


一、引言

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

二、环境准备

  首先,确保安装了Pyecharts库:

pip install pyecharts

三、数据加载与预处理

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年最新)

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时空热力图(假想省级分布)

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总量 & 人均双轴渐变折线图

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年六维)

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

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年核心指标

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')

五、可视化大屏

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数据。如果您有任何问题或建议,欢迎在评论区留言!🎉