关于#python#的知识点:pyecharts中Map传参

问题遇到的现象和发生背景

Map().add中的data_pair传入data输出的网页是个无值的空地图,传入data_list可以显示有数据的地图,data打印的结果和data_list是一样的。

问题相关代码
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts

data = pd.read_csv('DXYArea.csv')

china_data = data[data.countryName == '中国'].drop_duplicates(subset='provinceName').iloc[:, :12]

china_new_data = china_data[~china_data['provinceName'].isin(['中国'])]

china_replace = [
    str(i).replace('省', '').replace('自治区', '').replace('回族', '').replace('壮族', '').replace('维吾尔', '').replace('市', '')
    for i in china_new_data['provinceName'].values]

data = [z for z in zip(list(china_replace), list(china_data['province_zipCode'].values))]
print(data)

data_list = [('香港', 810000), ('台湾', 710000), ('陕西', 951001), ('福建', 610000), ('河南', 350000), ('新疆', 410000),
             ('广东', 650000), ('四川', 440000), ('山东', 510000), ('天津', 370000), ('上海', 120000), ('内蒙古', 310000),
             ('黑龙江', 150000), ('江苏', 230000), ('北京', 320000), ('辽宁', 110000), ('云南', 210000), ('安徽', 530000),
             ('重庆', 340000), ('浙江', 500000), ('山西', 330000), ('湖北', 140000), ('河北', 420000), ('甘肃', 130000),
             ('湖南', 620000), ('广西', 430000), ('江西', 450000), ('吉林', 360000), ('澳门', 220000), ('海南', 820000),
             ('贵州', 460000), ('宁夏', 520000), ('青海', 640000), ('西藏', 630000)]

china_map = (
    Map()
        .add('', data, 'china')
        .set_global_opts(
        title_opts=opts.TitleOpts(title='各省市人口数', subtitle="数据来源:中国统计年鉴(万人)", pos_right="center", pos_top="5%"),
        visualmap_opts=opts.VisualMapOpts(max_=1000000),
    )
)
china_map.render('china_map.html')
运行结果及报错内容

img

img

img

可能是zip对象惰性计算的原因,可以试着在zip前用list(zip()) 转化下看看 是不是这个原因