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')
可能是zip对象惰性计算的原因,可以试着在zip前用list(zip()) 转化下看看 是不是这个原因