pyecharts安装和爬取前程无忧招聘网站数据分析(二)

编程入门 行业动态 更新时间:2024-10-10 12:24:51

pyecharts安装和爬取前程无忧<a href=https://www.elefans.com/category/jswz/34/1730024.html style=招聘网站数据分析(二)"/>

pyecharts安装和爬取前程无忧招聘网站数据分析(二)

目录

一、安装pyecharts

        1. 安装pyecharts

        2. 生成方式

                (1)生成html文件 

                 (2) 直接生成图片

二、实际操作

        1. 生成工作地图 

         2. 生成全国python平均薪资分布图


        当我第一次看见pyecharts,就发现它是一个非常厉害的绘图工具,相比较于matplotlib,它不仅仅是动态的,更有很多的绘图种类,例如饼图、折线图、箱型图、地图、词云图等等。大家可以去官网先去预览,点击进入官网

 在这里找到示例,可以看到有很多的图形。同时也能看到pyecharts的强大。

在学习的时候完全可在官网上面学习,上面有很代码。

那么废话少说,开始安装pyecharts。

一、安装pyecharts

        1. 安装pyecharts

        pyecharts有很多的版本,有新版本1.××和旧版本0.5×之分,并且这两个版本不兼容,而且旧版本不维护了,但是现在csdn上面很多都是旧版本的pyecharts。

        可以看下这是新旧版本引入同一个库的写法。

#from pyecharts import Bar               #旧版本的写法
from pyecharts.charts import Bar         #新版本的写法

        我个人建议使用新版本,以下就是新版本下载方式,

pip install pyecharts==0.1.9.4

        2. 生成方式

        当安装完pyecharts才完成了一小半,pyecharts的生成图像的方式有两种,生成html文件直接生成图。

                (1)生成html文件 

# 绘制直方图
from pyecharts.charts import Bary1 = [1,4,5,8,15,6]
y2 = [2,9,6,5,1,4]bar = Bar()
bar.add_xaxis(['1','2','3','4','5','6'])
bar.add_yaxis('1',y1)
bar.add_yaxis('2',y2)bar.render('实例1.html')        # 一定要加html后缀名,不然点不进浏览器

         结果生成了一个html文件实例1.html,打开该文件,就会得到该图片。

                 (2) 直接生成图片

        pyecharts输出一般都是html文件,当直接生成图片(静态图片),就需要安装渲染包snapshot_selenium:把html文件转换成png文件格式。

pip install snapshot-selenium

         当然只是安装snapshot_selenium是不够的,还需要安装浏览器驱动器Chromedriver.exe,也就是我上一期安装的,大家可以返回看看。上一期安装Chromedriver.exe

        安装完后一定要把Chromedriver.exe 的位置放在运行的文件在同一个包下,例如,

# 绘制直方图
from pyecharts.charts import Bar
from snapshot_selenium import snapshot
from pyecharts.render import make_snapshoty1 = [1,4,5,8,15,6]
y2 = [2,9,6,5,1,4]bar = Bar()
bar.add_xaxis(['1','2','3','4','5','6'])
bar.add_yaxis('1',y1)
bar.add_yaxis('2',y2)make_snapshot(snapshot, bar.render(), r"C:\Users\86178\Desktop\实例1.png")

二、实际操作

        1. 生成工作地图 

         要想生成地图,还需要下载以下关于地图信息的库。

pip install echarts-countries-pypkg             全球国家地图
pip install echarts-china-provinces-pypkg       中国省份地图
pip install echarts-china-cities-pypkg          中国城市地图
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

        大家还需要有一个关于全国的城市列表,比如说在爬取全国招聘信息时,它给出的地址信息是某个省的城市,而要统计全国各省的招聘信息就需要将城市转换到所在的省市。

(大家在评论区私信我,留下QQ邮箱,我会及时发给大家)。格式就像以下这样。

    直接就给出代码了,主要就是将城市转换为所在的省市,然后绘制地图就是导入一个列表,列表中的元素是(城市,工作份数)

其实完全自己不用写代码,直接引用官网上面的代码。自己仅仅就是做好数据集就行了。

# 将部分地区的名字换成它对应的省份
fo =open('中国城市.txt','r')
fd = fo.readlines()
dict_city = {}
for i in fd:line = i.strip().split(' ')dict_city[line[0]] = dict_city.get(line[0],[]) + [line[1]]
dict_local_new = {}
for i in dict_city.items():for j in list_local:if j[0] in i[1]:dict_local_new[i[0]] = dict_local_new.get(i[0],0) + j[1]
list_local_new = list(dict_local_new.items())# 配色
pieces=[{'max':1,'color':'#FFFFF0'},{'min':1,'max':9,'color':'#FFE0E0'},{'min':10,'max':99,'color':'#FEC0C0'},{'min':100,'max':499,'color':'#FD9090'},{'min':500,'max':999,'color':'#FC6060'},{'min':1000,'max':9999,'color':'#FB3030'},{'min':10000,'color':'#DD0000'}]def use_pyecharts(city_string,true_city,data_info):provience_city = (Map(init_opts=opts.InitOpts(width="1000px", height="900px", page_title=city_string)).add(city_string,data_info,maptype=true_city,           # 切换至其它地方).set_global_opts(title_opts=opts.TitleOpts(title='{}'.format(city_string),title_target="blank",  # 新窗口打开subtitle='{}'.format(city_string),  # 副标题subtitle_target="self"),  # 当前窗口打开visualmap_opts=opts.VisualMapOpts(is_show=True,  # 视觉映射配置max_=200,is_calculable=True,  # 是否显示拖拽用的手柄is_piecewise=True,  # 是否为分段型range_text=["High", "Low"],border_color="#000",pieces=pieces),  # 两端文本tooltip_opts=opts.TooltipOpts(trigger="item",  # 触发类型trigger_on="mousemove|click",  # 提示框的触发条件formatter="{b}:{c}份工作")  # 标签内容格式,这里采用的字符串模板).set_series_opts(label_opts=opts.LabelOpts(is_show=True)).render('provience_{}.html'.format(city_string)))use_pyecharts('全国python工作分布图','china',list_local_new)

     

 

         2. 生成全国python平均薪资分布图

 

# 处理薪水,单位为千每月
def change_sal(string,old_sal,num_m):sal = old_sal.replace(string, '')min, max = sal.split('-')min , max = eval(min),eval(max)min *= num_m      # 改变单位max *= num_mnew_sal = (min+max)/2       # 计算平均薪水return new_saldict_loc_sal = {}       # 地点对应的薪水
for i in range(len(data_job['薪水'])):sal = str(data_job['薪水'][i])if '万/月' in sal:sal = change_sal('万/月', sal, 10)elif '元/天' in sal:o_sal = sal.replace('元/天', '')sal = eval(o_sal) * (30 / 1000)elif '万/年' in sal:sal = change_sal('万/年', sal, 10 / 12)elif '千/月' in sal:sal = change_sal('千/月', sal, 1)else:sal = Nonecity = data_job['公司地点'][i]if '-' in city:ls_city = city.strip().split('-')city = ls_city[0]else:city = cityfor c in dict_city.items():if city in c[1]:city = c[0]if sal !=None:dict_loc_sal[city] = dict_loc_sal.get(city,[]) + [sal]else:continuefor loc_sal in dict_loc_sal.items():        # 计算所有平均值avg_sal = sum(loc_sal[1])/len(loc_sal[1])dict_loc_sal[loc_sal[0]] = avg_sal# 配色
pieces=[{'max':1,'color':'#FFFFF0'},{'min':2,'max':5.999999,'color':'#FFE0E0'},{'min':6,'max':8.999999,'color':'#FEC0C0'},{'min':9,'max':12.999999,'color':'#FD9090'},{'min':12,'max':15.999999,'color':'#FC6060'},{'min':16,'max':20.999999,'color':'#FB3030'},{'min':21,'color':'#DD0000'}]list_loc_sal = list(dict_loc_sal.items())
use_pyecharts('全国python平均薪水','china',list_loc_sal)

 

        

三、总结

        用pyecharts绘图时,可以借助官网上面的代码,上面的图也很多。要是自己全部将其掌握还是有一定难度的。另外一些简单的图用matplotlib也是可以的。

更多推荐

pyecharts安装和爬取前程无忧招聘网站数据分析(二)

本文发布于:2024-02-11 00:48:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1678223.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:招聘网站   前程无忧   数据   pyecharts

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!