我爬了拉勾网搜索“设计”职位的招聘信息,详见Python爬虫获取拉勾网招聘信息。接下来准备逐步分析一下,本篇主要用pyecharts画地图Geo,Map。
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Geo,Map
from pyecharts.globals import ChartType, SymbolType,ThemeType
df = pd.read_excel('lagou_sj0309_155511.xlsx')
result=pd.value_counts(df['city'])
print(result)
之前爬取的数据只有城市信息,想显示到中国地图上还是转化为省份信息比较好。
dfp = pd.read_excel('province.xlsx')
df_new = pd.merge(df,dfp.loc[:,['city','province']],how='left',on = 'city')
result=pd.value_counts(df_new['province'])
resultp=dict(result)
province = list(resultp.keys())
values = list(resultp.values())
valuesint=[]
for i in values:
valuesint.append(int(i))
其中’province.xlsx’是我从网上找的城市–省市对应表。下面就正式画图啦
c1 = (
Geo()
.add_schema(maptype="china")
.add("各个省市招聘人数", #标题
[list(z) for z in zip(province, valuesint)],#省份数据列表,地名不能带“省”字
type_=ChartType.EFFECT_SCATTER)#选择显示类型
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))#不显示标签
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_=200,is_piecewise = False),
title_opts=opts.TitleOpts(title="全国各省数据分布"),
)
)
c1.render('各个省市招聘人数点地图.html')#保存为HTML
c1.render_notebook()#在notebook上显示
接下来我们再试试画map,前面的数据处理一样,还是先转换为省份的数据。
c2 = (
Map(init_opts=opts.InitOpts(bg_color="#fff", theme=ThemeType.ROMANTIC))#设置主题
.add("各个省市招聘人数", [list(z) for z in zip(province, valuesint)], "china",is_map_symbol_show=False)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="各个省市招聘人数"),
visualmap_opts=opts.VisualMapOpts(max_=200,is_piecewise = True,#图例分段显示
pieces=[
{"min": 201, "label": '>200人', "color": "#e55039"}, # 不指定 max,表示 max 为无限大(Infinity),指定颜色。
{"min": 101, "max": 200, "label": '101-200人', "color": "#FF4500"},
{"min": 51, "max": 100, "label": '51-100人', "color": "#FF7F50"},
{"min": 10, "max": 50, "label": '10-50人', "color": "#FFA500"},
{"min": 1, "max": 9, "label": '1-9人', "color": "#FFDEAD"},
]
))
)
c2.render('各个省市招聘人数块地图.html')
c2.render_notebook()
还是挺容易的吧~
如需转载请注明来源:https://blog.youkuaiyun.com/bo_gu/article/details/104844599