我爬了拉勾網搜索“設計”職位的招聘信息,詳見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.csdn.net/bo_gu/article/details/104844599