- from pyecharts import Style
- from pyecharts import Geo, Map
- city_list = []
- f = open("./clear_phone_honor.txt", "r", encoding="utf-8")
- rows = f.readlines()
- try:
- for row in rows:
- row_list = row.split(",")
- if len(row_list) == 5:
- city = row_list[4].split(" ")[0].rstrip("\n")
- city_list.append(city)
- except Exception as e:
- print("error",e)
- finally:
- f.close()
- def get_city_numb(citys):
- """
- 计算城市列表中的城市数量
- :param citys: 城市列表
- :return: 字典{城市名:数量}
- """
- city_dict = {}
- for city in set(citys):
- city_dict[city] = citys.count(city)
- return city_dict
- data_list = []
- for key in get_city_numb(city_list):
- data_list.append((key,get_city_numb(city_list)[key]))
- style = Style(
- title_color="#fff",
- title_pos="center",
- width=1200,
- height=600,
- background_color="#404a59"
- )
- geo = Geo("荣耀10商铺地理位分布","数据来源于淘宝",**style.init_style)
- attr,value = geo.cast(data_list)
- geo.add("",attr,value,visual_range=[0,30],
- visual_text_color="#fff",symbol_size=20,
- is_visualmap=True,is_piecewise=True,
- visual_split_number=5)
- geo.render("荣耀10商铺数量地理位分布.html")
- map = Map("荣耀10商铺所在省份",width=1200,height=600)
- map.add(
- "",
- attr,
- value,
- maptype="china",
- is_visualmap=True,
- visual_text_color="#000",
- )
- map.render("荣耀10商铺所在省份.html")
程序分析:
(1)第1~2行导入相关的库,pyecharts用于制作图表
(2)4~16行,将clear_phone_honor.txt文件中的信息中城市信息放到city_list列表中
(3)19~28行,计算city_list中的城市数量,并将数据存储到city_dict字典中
(4)第31~34行,将city_dict中的数据以元组的形式存到data_list中,便于后面的作图使用。
(5)第35~41行,设置地图的标题样式
(6)第43~49行,制作商铺的地理位置分布图
(7)第50~60行,制作商铺数量所在的省份位置分布图