python爬取拉勾网数据并进行数据可视化( 二 )

回到顶部
四、数据可视化展示
下面是对数据的可视化展示,仅以部分视图进行一些可视化的展示,如果读者想对其他字段做一些展示以及想使用不同的视图类型进行展示,请自行发挥,注:以下代码中引入的模块见最后的完整代码
1、绘制python薪资的频率直方图并保存
【python爬取拉勾网数据并进行数据可视化】如果我们想看看关于互联网行业python工程师相关的岗位大家普遍薪资的一个分部区间在哪个范围,占据了多达的比例我们就可以借助matplotlib库,来将我们保存在csv文件中的数据进行可视化的展示,然我们能够更直观的看到数据的一个分部趋势
# 绘制python薪资的频率直方图并保存plt.hist(df['月薪'],bins=8,facecolor='#ff6700',edgecolor='blue') # bins是默认的条形数目plt.xlabel('薪资(单位/千元)')plt.ylabel('频数/频率')plt.title('python薪资直方图')plt.savefig('python薪资分布.jpg')plt.show()运行结果如下:

python爬取拉勾网数据并进行数据可视化

文章插图
 
2、绘制python相关职位的地理位置饼状图
通过地理python职位地理位置的分部我们可以大致了解IT行业主要集中分部在哪些城市,这样也更利于我们选择地域进行选择性就业,可以获得更多的面试机会等,参数可自行调试,或根据需要添加 。
# 绘制饼状图并保存city = df['城市'].value_counts()print(type(city))# print(len(city))label = city.keys()print(label)city_list = []count = 0n = 1distance = []for i in city: city_list.append(i) print('列表长度', len(city_list)) count += 1 if count > 5: n += 0.1 distance.append(n) else: distance.append(0)plt.pie(city_list, labels=label, labeldistance=1.2, autopct='%2.1f%%', pctdistance=0.6, shadow=True, explode=distance)plt.axis('equal') # 使饼图为正圆形plt.legend(loc='upper left', bbox_to_anchor=(-0.1, 1))plt.savefig('python地理位置分布图.jpg')plt.show()运行结果如下:
python爬取拉勾网数据并进行数据可视化

文章插图
 
3、绘制基于pyechart的城市分布柱状图
pycharts是python中调用百度基于js开发的echarts接口,也可以对数据进行各种可视化操作,更多数据可视化图形展示,可参考echarts官网:https://www.echartsjs.com/,echarts官网提供了各种实例供我们参考,如折线图、柱状图、饼图、路径图、树图等等,基于pyecharts的文档可参考以下官网:https://pyecharts.org/#/,更多用法也可自行百度网络资源
city = df['城市'].value_counts()print(type(city))print(city)# print(len(city))keys = city.index # 等价于keys = city.keys()values = city.valuesfrom pyecharts import Barbar = Bar("python职位的城市分布图")bar.add("城市", keys, values)bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用bar.render(path='a.html')运行结果如下:
python爬取拉勾网数据并进行数据可视化

文章插图
 
4、绘制python福利相关的词云
词云图又叫文字云,是对文本数据中出现频率较高的关键词予以视觉上的突出,形成"关键词的渲染"就类似云一样的彩色图片,从而过滤掉大量的文本信息,,使人一眼就可以领略文本数据的主要表达意思 。利用jieba分词和词云生成WorldCloud(可自定义背景),下面就是对python相关职位的福利做了一个词云的展示,可以更直观的看到大多数公司的福利待遇集中在哪些地方
# 绘制福利待遇的词云text = ''for line in df['公司福利']: if len(eval(line)) == 0: continue else: for word in eval(line): # print(word) text += wordcut_word = ','.join(jieba.cut(text))word_background = imread('公主.jpg')cloud = WordCloud( font_path=r'C:WindowsFontssimfang.ttf', background_color='black', mask=word_background, max_words=500, max_font_size=100, width=400, height=800)word_cloud = cloud.generate(cut_word)word_cloud.to_file('福利待遇词云.png')plt.imshow(word_cloud)plt.axis('off')plt.show()运行结果如下:
python爬取拉勾网数据并进行数据可视化

文章插图
 
回到顶部
五、爬虫及可视化完整代码
完整代码在下面,代码均测试可正常运行,感兴趣的小伙伴可去尝试和了解其中的使用方法,如运行或者模块安装等失败可以在评论区进行留言,让我们一同解决吧
如果你觉得对你有帮助可以点个赞哦,原创内容转载需说明出处!!!
1、爬虫完整代码
为了防止我们频繁请求一个网站被限制ip,我们在爬取每一页后选择睡一段时间,当然你也可以使用代理等其他方式自行实现


推荐阅读