• 如何使用pyecharts库绘制柱状图
  • 发布于 2个月前
  • 310 热度
    0 评论
上次爬LOL没有成功是因为英雄联盟的item获取不到,没有异步加载到item信息,本次利用matplotlib绘制柱状图表,然后根据xy轴数据,制作pyechats动态图表以便观看。

首先,我们使用requests库发送请求获取数据,具体请求参数在params中指定。
然后,我们从返回的json数据中取出前20名英雄及对应场次,存储在hero_data列表中。
最后,我们使用pyecharts库绘制柱状图,将英雄名作为x轴,场次作为y轴。同时,我们对图表进行了一些设置,包括标题、坐标轴标签等。

最终,执行bar.render()即可将图表保存在本地。

1.确认api地址

2.将每个TAB页组合数据

3.组合数据到柱状图
url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
headers = {'Referer': 'https://lol.qq.com/data/info-heros.shtml'}
r = requests.get(url, headers=headers)
data = r.json()['hero']
hero_played_num = [{'name': item['name'], 'played_num': item['heroId'][-3:]} for item in data]
sorted_hero_played_num = sorted(hero_played_num, key=lambda x: int(x['played_num']), reverse=True)[:20]
# 用pyecharts制作柱状图
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis([item['name'] for item in sorted_hero_played_num])
bar.add_yaxis('Played Number', [int(item['played_num']) for item in sorted_hero_played_num])
bar.set_global_opts(title_opts=opts.TitleOpts(title="英雄联盟比赛上场次数最多的20位英雄"),
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30, font_size=10)),
        yaxis_opts=opts.AxisOpts(name="场次", axislabel_opts=opts.LabelOpts(font_size=12)),
        datazoom_opts=opts.DataZoomOpts())
bar.render('lol_played_top_20.html')

运行效果,为了x轴数据展示松散,设置间隔

用户评论