博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 Python 自动获取NBA现役球员的职业生涯数据曲线
阅读量:4129 次
发布时间:2019-05-25

本文共 3462 字,大约阅读时间需要 11 分钟。

前言

作为一个看了多年篮球的 NBA球迷,一直在想用 python 和篮球一起来写点什么

加上最近在学习 pyecharts ,所以就有了下面这篇文章:

根据输入的球队和球员名字,自动生成该球员职业生涯数据曲线图!

✨ 效果

火箭哈登
勇士格林

我只挑了两个球员,感兴趣的朋友可以在后台回复 “nba” 获取源码。

输入自己喜爱的球队和球员名称即可

通过这些曲线图,球星的职业生涯的数据一目了然:

不得不说登哥每年数据都在上升

而勇士的格林自从拿了大合同,数据全面下滑,哈哈

怎么做的?

1.首先需要了解 pyecharts 的折线图用法

2.基本的爬虫

因为坚持原创,精力也有限,所以程序暂时只支持湖人,火箭,勇士这三支比较热门的球队

如果对其他球队也有需求,可以联系我添加进去。

Line:折线/面积图

折线图是用折线将各个数据点标志连接起来的图表,用于展现数据的变化趋势。

折线/面积图对应的模块是 Line

可以配置折线的形式,颜色,标注最大值,最小值等

具体请看下面的 add_yaxis 的详细说明

Line 模块对应的函数使用说明:

1def add_yaxis( 2    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。 3    series_name: str, 4 5    # 系列数据 6    y_axis: Sequence, 7 8    # 是否选中图例 9    is_selected: bool = True,1011    # 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。12    xaxis_index: Optional[Numeric] = None,1314    # 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。15    yaxis_index: Optional[Numeric] = None,1617    # 系列 label 颜色18    color: Optional[str] = None,1920    # 是否显示 symbol, 如果 false 则只有在 tooltip hover 的时候显示。21    is_symbol_show: bool = True,2223    # 标记的图形。24    # ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 25    # 'diamond', 'pin', 'arrow', 'none'26    # 可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI。27    symbol: Optional[str] = None,2829    # 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,30    # 例如 [20, 10] 表示标记宽为 20,高为 10。31    symbol_size: Union[Numeric, List] = 4,3233    # 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。34    stack: Optional[str] = None,3536    # 是否平滑曲线37    is_smooth: bool = False,3839    # 是否显示成阶梯图40    is_step: bool = False,4142    # 标记点配置项,参考 `series_options.MarkPointOpts`43    markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None,4445    # 标记线配置项,参考 `series_options.MarkLineOpts`46    markline_opts: Union[opts.MarkLineOpts, dict, None] = None,4748    # 提示框组件配置项,参考 `series_options.TooltipOpts`49    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,5051    # 标签配置项,参考 `series_options.LabelOpts`52    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),5354    # 线样式配置项,参考 `series_options.LineStyleOpts`55    linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),5657    # 填充区域配置项,参考 `series_options.AreaStyleOpts`58    areastyle_opts: Union[opts.AreaStyleOpts, dict] = opts.AreaStyleOpts(),5960    # 图元样式配置项,参考 `series_options.ItemStyleOpts`61    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,62)63

示例代码:

1# coding: utf-8 2from pyecharts import options as opts 3from example.commons import Faker 4from pyecharts.charts import Line 5 6 7def line_base() -> Line: 8    c = ( 9        Line()10        .add_xaxis(Faker.choose())11        .add_yaxis("商家A", Faker.values(), color="blue", is_smooth=True, markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]))12        .add_yaxis("商家B", Faker.values(), is_smooth=True, markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]))13        .set_global_opts(title_opts=opts.TitleOpts(title="Line-基本示例"))14    )15    return c161718if __name__ == "__main__":19    line_base().render("line.html")20    pass

运行之后在本地目录,会生成一个 line.html 的文件

效果图如下:

折线图

程序用法

在输入球队和球员的时候,请使用空格分开

另因为每个人对 NBA 球员的叫法可能会不一样,所以做了一下统一,输入的时候请注意!

比如, 以下火箭球员的名称集合

1rocket_mapping = { 2    "保罗": "克里斯-保罗", 3    "哈登": "詹姆斯-哈登", 4    "卡佩拉": "卡佩拉克林特-卡佩拉", 5    "戈登": "埃里克-戈登", 6    "香珀特": "伊曼-香珀特", 7    "塔克": "PJ-塔克", 8    "内内": "内内", 9    "格林": "杰拉德-格林",10    "法里埃德": "肯尼思-法里德",11    "小李": "奥斯汀-里弗斯",12    "豪斯": "丹纽尔-豪斯",13    "克拉克": "加里-克拉克",14    "杜瓦尔": "特雷旺-杜瓦尔",15}

后台回复 “nba” 获取该程序

END

一起编程,一起成长

扫码关注最新动态 

转载地址:http://gwzvi.baihongyu.com/

你可能感兴趣的文章
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>
如何运行从网上下载的iWatch项目详细步骤.
查看>>
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
查看>>
Xcode 报错: Extra argument in call
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
#import <Cocoa/Cocoa.h> 报错 Lexical or Preprocessor Issue 'Cocoa/Cocoa.h' file not found
查看>>
`MQTTClient (~> 0.2.6)` required by `Podfile`
查看>>
X-Code 报错 ld: library not found for -lAFNetworking
查看>>
Bitcode
查看>>
If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>
How to access the keys in dictionary in object-c
查看>>
iOS菜鸟学习—— NSSortDescriptor的使用
查看>>
hdu 3787 hdoj 3787
查看>>
hdu 3790 hdoj 3790
查看>>
hdu 3789 hdoj 3789
查看>>