可视化 | Python精美地图动态展示近20年全国各省市GDP


大家好,我是 👉
本期我们利用Python可视化动态展示2001-2019年全国各省市GDP数据,涉及到pandas数据处理、pyechars数据可视化,希望对你有所帮助。

先看看效果:

🏳️‍🌈 1. 数据获取

可在线下载到本地,保存为csv或excel格式,用pandas进行读取。

import pandas as pd
datas = pd.read_csv(2001-2019各省GDP数据.csv, encoding=gbk)

🏳️‍🌈 2. 数据可视化

2.1 2019年各省市GDP柱状图(横向)

默认缩放为横向缩放。

代码:

def get_gdp_bar1(datas):
    c = (
        Bar()
            .add_xaxis(datas[地区].values.tolist())
            .add_yaxis(全国各省GDP(亿元), datas[2019年].values.tolist())
            .set_global_opts(
            title_opts=opts.TitleOpts(title=2019年全国各省GDP(亿元)),
            datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_=inside)],
        )
        .render(2019年全国各省GDP_Bar1.html)
    )

效果:

2.2 2019年各省市GDP柱状图(纵向)

调整缩放为纵向缩放。

代码:

def get_gdp_bar2(datas):
    sort_info = datas.sort_values(by=2019年, ascending=True)
    c = (
        Bar()
            .add_xaxis(sort_info[地区].values.tolist())
            .add_yaxis(全国各省GDP(亿元), sort_info[2019年].values.tolist())
            .reversal_axis()
            .set_series_opts(label_opts=opts.LabelOpts(position="right"))
            .set_global_opts(
            title_opts=opts.TitleOpts(title=2019年全国各省GDP(亿元)),
            datazoom_opts=[opts.DataZoomOpts(is_show=True, orient=vertical)],
        )
        .render(2019年全国各省GDP_Bar2.html)
    )

效果:

2.3 2019年各省市GDP全国地图

地图显示时注意需要对表格中地区数据做去除后缀处理,即将省、市、自治区等去掉,否则无法显示。

代码:

def get_gdp_map1(datas):
    datas[地区].replace(regex=True, inplace=True, to_replace=[省, 市, 维吾尔自治区, 回族自治区, 壮族自治区, 自治区], value=r)
    map = (
        Map()
        .add(全国各省GDP(亿元), datas[[地区, 2019年]].values.tolist(), china)
        .set_global_opts(
            title_opts=opts.TitleOpts(title=2019年全国各省GDP(亿元)),
            visualmap_opts=opts.VisualMapOpts(max_=110000),
        )
    )
    map.render(2019年全国各省GDP_Map.html)

效果: 默认图例为colorbar。

2.4 2001-2019年每年各省市GDP轮播图

修改图例(分段)、增加时间序列。

代码:

def get_gdp_map2(datas):
    datas[地区].replace(regex=True, inplace=True, to_replace=[省, 市, 维吾尔自治区, 回族自治区, 壮族自治区, 自治区], value=r)
    tl = Timeline()
    # 播放的速度,单位毫秒(ms)
    tl.add_schema(play_interval=300, symbol=emptydiamond)
    for i in range(2001, 2020):
        map0 = (
            Map()
            .add(全国各省GDP(亿元), datas[[地区, str(i) + 年]].values.tolist(), china)
            .set_global_opts(
                title_opts=opts.TitleOpts(title={}年全国各省GDP(亿元).format(i)),
                visualmap_opts=opts.VisualMapOpts(max_=110000,is_piecewise=True),
            )
        )
        tl.add(map0, {}年.format(i))
    tl.render(2001-2019年全国各省GDP.html)

效果: symbol参数:标记图形,可根据需要设置’circle’, ‘rect’, ‘roundRect’, ‘triangle’, ‘diamond’, ‘pin’, ‘arrow’ 等。

🏳️‍🌈 3. 可视化项目源码+数据

网盘: https://pan.baidu.com/doc/share/Olj4d~aKuXT7AF0cq01MrQ-437060019167360 提取码: pyra

推荐阅读

经验分享 程序员 微信小程序 职场和发展