my canteen
登录       注册

您现在的位置是:网站首页 > 学无止境

pyecharts数据可视化

王伟2020年5月7日12501人围观
简介pyecharts数据可视化,交互式数据,国人开发的api

爬取詹姆斯常规赛生涯数据

url = http://stat-nba.com/player/1862.html

import requests
# 伪造UA
from fake_useragent import UserAgent
from lxml import etree
url = 'http://stat-nba.com/player/1862.html'
headers = {
    'User-Agent':UserAgent().random,
}
res = requests.get(url=url,headers=headers,timeout = 2).text
tree = etree.HTML(res)
# 利用xpath 解析并获取数据
years = tree.xpath('//*[@id="stat_box_avg"]/tbody//tr/td[2]/a/text()')
Backboard = tree.xpath('//*[@id="stat_box_avg"]/tbody/tr/td[16]/text()')[:-1]
Assists = tree.xpath('//*[@id="stat_box_avg"]/tbody/tr/td[19]/text()')[:-1]
Score = tree.xpath('//*[@id="stat_box_avg"]/tbody/tr/td[24]/text()')[:-1]
# 转置数据
years.reverse()
Backboard.reverse()
Assists.reverse()
Score.reverse()
# 转换数据类型
for i in range(0,17):
    Backboard[i]=float(Backboard[i])
    Assists[i]=float(Assists[i])
    Score[i]=float(Score[i])
print(years)
print(Backboard)
print(Assists)
print(Score)
# res:
['03-04', '04-05', '05-06', '06-07', '07-08', '08-09', '09-10', '10-11', '11-12', '12-13', '13-14', '14-15', '15-16', '16-17', '17-18', '18-19', '19-20']
[5.5, 7.4, 7.0, 6.7, 7.9, 7.6, 7.3, 7.5, 7.9, 8.0, 6.9, 6.0, 7.4, 8.6, 8.6, 8.5, 7.9]
[5.9, 7.2, 6.6, 6.0, 7.2, 7.2, 8.6, 7.0, 6.2, 7.3, 6.3, 7.4, 6.8, 8.7, 9.1, 8.3, 10.6]
[20.9, 27.2, 31.4, 27.3, 30.0, 28.4, 29.7, 26.7, 27.1, 26.8, 27.1, 25.3, 25.3, 26.4, 27.5, 27.4, 25.7]

matplotlib可视化

from matplotlib import pyplot as plt
import numpy as np
import matplotlib
# 显示中文
matplotlib.rc("font" ,family="MicroSoft YaHei")
width = 0.3
_x = np.arange(len(years))
print(Score)
# 设置图片大小
plt.figure(figsize=(20,8),dpi=80)
plt.bar(_x,Backboard,width=width,label='场均篮板')
plt.bar(_x+width,Assists,width=width,label='场均助攻')
plt.bar(_x+2*width,Score,width=width,label='场均得分')
plt.xticks(_x+width,years)
plt.title('詹姆斯生涯场均数据')
plt.legend()
# 网格
plt.grid(axis="y",alpha=0.4)
plt.show()

matplotlib可视化 只是单一的图片没有数据交互

pyecharts交互式可视化

# 柱状图
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = Bar()
bar.set_global_opts(title_opts=opts.TitleOpts(title='詹姆斯常规赛季场均数据'))
bar.add_xaxis(years)
bar.add_yaxis("篮板",Backboard) 
bar.add_yaxis("助攻",Assists)
bar.add_yaxis("得分",Score)
bar.render_notebook()

可以把鼠标放在图上 也可点击篮板 助攻 得分 进行单一查看

# 折线图
from pyecharts.charts import Line
from pyecharts import options as opts
bar = Line()
bar.add_xaxis(years)
bar.add_yaxis("篮板",Backboard) 
bar.add_yaxis("助攻",Assists)
bar.add_yaxis("得分",Score)
bar.set_global_opts(title_opts=opts.TitleOpts(title='詹姆斯常规赛季场均数据'))
bar.render('./line.html')

相比于柱状图 折线图看起来更舒服一些

pyecharts是国人开发的一个库 使用起来也是很有自豪感!!!

大家可以去github上star一下,支持一下国产

https://github.com/pyecharts/pyecharts

学习过后 欣赏一下詹姆斯的暴力美学

路漫漫其修远兮,吾将上下而求索!


上一篇:

下一篇:我的食堂

文章评论

  • 小白 2020年8月26日 16:08

    python真的挺好玩啊

来说句话吧.... 共有评论数:1条


微信二维码 博主微信 qq二维码 博主QQ
177****8743
7*24小时电话