首先,将爬取的数据生成.csv文件。我将爬取的文本同时也上传到博客上,下载即可
对数据进行提取,整合
运行代码,生成render.html,直接打开。
from pyecharts import Geo
import csv
import re
# data = [{"南京":20}]
data =[] # data 数据在 geo 原来的模板中是列表装元祖的数据形式,我试过列表装字典的数据也是可以,因为为了整合数据的方便,我才用列表装字典的数据形式
check_city = []
#读取csv文件,将文件中的数据绘制出来
with open("手机_data.csv",encoding='utf8') as f:
reader = csv.reader(f)
header = next(reader) #使读取CSV文件中不包含表头
for i in reader:
#爬取的数据中 城市有省加城市名,但是在geo 库中无法识别,必须统一是城市名
if len(i[5])>2:
city_name = i[5][-2:]
else:
city_name = i[5]
# 销售量排除 万 以及 + 空 字符
city_num = i[2]
if city_num=="":
continue
num = city_num.split('万')
if len(num)==2:
city_num = float(num[0])*10000
else:
renum = re.search(r'\+',city_num)
if renum:
city_num = int(city_num.split('+')[0])
else:
city_num = int(city_num)
one_city = {city_name:city_num}
# 检测是否有相同出现的城市,有:销售量累加起来,无:新增。(geo data数据里只能有一个城市名)
if city_name in check_city:
for j in data:
if city_name in j.keys():
j[city_name] += city_num
else:
data.append(one_city)
check_city.append(city_name)
geo = Geo("2020-4月份某宝手机销量地热力图", "data from max_mei", title_color="#fff", title_pos="center",
width=1600, height=800, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 20000], visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render()
展示图


2556

被折叠的 条评论
为什么被折叠?



