python实现3d图表,对掘金后端作者进行可视化操作
今天来和小伙伴们介绍点不一样的~ 哈哈 ?
如下图~

看到这图你想到什么了呢~

其实只是我无聊,找个地方练练爬虫 哈哈,然后对数据进行可视化操作,就有了这么一个3d图表
而且还是有点小收获的,让我来简单介绍下先吧!
爬取的目标
如图所示,此次爬取的目标是 后端排行榜 ,没错 就是这么些数据,然后对作者对应的赞,等级,进行可视化操作

API获取
然后呢,按下浏览器的 F12
就可以从控制台中找到对应的 API
了

从上图红框中我们可以发现,这里使用的是 Http2.0
,和之前爬公众号的一样,要导入这个包 from hyper.contrib import HTTP20Adapter
Http2.0
Http2.0
有几个新特点:
-
新的二进制格式 -
多路复用(MultiPlexing) -
header压缩 -
服务端推送(server push)
Http2.0
中头部压缩的原理:(谷歌技术专家大佬分享的图片)

简单来说呢,就是客户端和服务端都会维护一个静态表格,然后在传输信息时,就可以直接传递这个 header
对应的索引给到对方,不用像之前那样传输 header:get
,可以减少传输大小

有了APi后,我们就是对获取到的数据进行清洗就好了~
pyecharts
清洗完数据后呢,我们要对数据进行可视化操作
这里就不得不提下这个 pyecharts
了,其实它是 封装了这个 echarts
图表库,类似 vue
封装的 v-charts
,所以很多参数不明白的话,得去 echarts
官方文档查看,还可以在线调试?
? pyecharts
官方文档:https://pyecharts.org/#/zh-cn/intro
? echarts
官方文档:https://echarts.apache.org/examples/zh/index.html

真的很好看?

代码
代码在官网就有,直接将上面的 demo 抄过来,进行简单的改造就可以啦

代码也比较简单,这里就简单说下核心步骤啦?,最后将数据填到上面 demo
的相应位置就可以了
# 填充数据,获取最大的赞
def parse_user_and_got_max_count(users, userNames, b3d_data):
max_digg_count = 0
for user in users:
user_name = dict(user).get('user_name')
userNames.append(user_name)
user_index = len(userNames) - 1
got_digg_count = dict(user).get('got_digg_count')
# got_view_count = dict(user).get('got_view_count')
level = dict(user).get('level')
b3d_data.append([level - 1, user_index, got_digg_count])
if got_digg_count > max_digg_count:
max_digg_count = got_digg_count
return max_digg_count
运行结果如下,打开生成的 html
页面即可。

效果
最后再来看一下这个效果叭~? 感觉挺炫的

最后
好了,我要减肥去了 绝望啊(没想到有一天我也得为发福焦虑 /(ㄒoㄒ)/~~)

原文始发于微信公众号(Java4ye):python实现3d图表,对掘金后端作者进行可视化操作