import pandas as pd import numpy as np from pyecharts import options as opts from pyecharts.charts import Bar, Map, Timeline

def get_gdp_map2(datas): # datas['地区'].replace(regex=True, inplace=True, to_replace=['省', '市', '维吾尔自治区', '回族自治区', '壮族自治区', '自治区'], value=r'') tl = Timeline() # 播放的速度,单位毫秒(ms) tl.add_schema(play_interval=1000, symbol='emptydiamond')

# 创建一个空的DataFrame,用于存储每年排名前十的地区的GDP数据
top10_df = pd.DataFrame(columns=['年份', '地区', 'GDP'])

for i in range(2003, 2023):
    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(is_show=True,   #图例
            is_piecewise=True,
            pieces=[
                    {"min": 1, "max": 4999, "label": " 1-4999", "color": "#FFFFE0"},
                    {"min": 5000, "max": 39999, "label": "5000-39999", "color": "#E0FFFF"},
                    {"min": 40000, "max": 59999, "label": "40000-59999","color": "#FF1493"},
                    {"min": 60000, "max": 79999, "label": "60000-79999","color": "#FF4500"},
                    {"min": 80000, "max": 99999, "label": "80000-99999","color": "#FF0000"},
                    {"min": 100000, "label": "100000+", "color": "#990033"}

           ]

        )
        )

    )
    tl.add(map0, '{}年'.format(i))

    # 获取每年排名前十的地区的数据
    top10_data = datas.nlargest(10, str(i) + '年')
    top10_data['年份'] = i
    top10_df = pd.concat([top10_df, top10_data[['年份', '地区', str(i) + '年']]])

# 绘制柱状图
bar = (
    Bar()
    .add_xaxis(top10_df['地区'].tolist())
    .add_yaxis("GDP", top10_df[str(i) + '年'].tolist())
    .set_global_opts(
        title_opts=opts.TitleOpts(title='每年排名前十的地区的GDP'),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-45))  # x轴标签旋转-45度
    )
)

# 同时显示柱状图和地图
page = (
    tl
    .add(bar, '每年排名前十的地区的GDP')
    .render('2003-2022年全国各省GDP.html')
)

Example usage:

df = pd.DataFrame({'地区': ['北京', '上海', '广东', '江苏', '浙江'], '2003年': [10000, 9000, 8000, 7000, 6000], '2004年': [11000, 10000, 9000, 8000, 7000], '2005年': [12000, 11000, 10000, 9000, 8000]}) get_gdp_map2(df)

def get_gdp_map2datas # datas地区replaceregex=True inplace=True to_replace=省 市 维吾尔自治区 回族自治区 壮族自治区 自治区 value=r tl = Timeline # 播放的速度单位毫秒ms tladd_schemaplay_interval=1000 symbol=emptydiamond

原文地址: http://www.cveoy.top/t/topic/je2e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录