前言

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

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

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

✨ 效果

火箭哈登

勇士格林

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

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

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

不得不说登哥每年数据都在上升
而勇士的格林自从拿了大合同,数据全面下滑,哈哈

怎么做的?

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

2.基本的爬虫

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

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

Line:折线/面积图

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

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

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

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

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

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

示例代码:

 1# coding: utf-82from pyecharts import options as opts3from example.commons import Faker4from pyecharts.charts import Line567def 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 c
16
17
18if __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

一起编程,一起成长

扫码关注最新动态

用 Python 自动获取NBA现役球员的职业生涯数据曲线相关推荐

  1. echarts 获取点击的y轴数值_用 Python 自动获取NBA现役球员的职业生涯数据曲线

    前言 作为一个看了多年篮球的 NBA球迷,一直在想用 python 和篮球一起来写点什么 加上最近在学习 pyecharts ,所以就有了下面这篇文章: 根据输入的球队和球员名字,自动生成该球员职业生 ...

  2. python分析出nba球员的位置_python抓取NBA现役球员基本信息数据并进行分析

    数据来源:NBA中国官网 库: requests 用于解析页面文本数据 pandas   用于处理数据 时间: 2017/2/17 (因为为现役球员,故需注明时间节点) 开工: 得到了数据,这下就好办 ...

  3. 用Python爬虫获取NBA球员的生涯数据

    NBA球迷往往对球员的各项数据以及对应的排名很感兴趣,而basketball-reference.com这个网站的数据十分详尽.为方便浏览,我在github建了一个项目,借助该网站提供的数据来汇总某个 ...

  4. 用Python自动生成NBA巨星生涯数据曲线

    1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号),大家的反响很好,我也感到很欣慰.有问我怎么做的,如何学 python 的,也有提建议说集成到 web 里面 ...

  5. Python自动获取Redi缓存验证码

    最近做UI自动化测试,登录是需要进行短信验证码验证,和开发聊了聊思路,就开始着手实施 打开cmd 安装redis库 pip install redis 安装完成后,开始写代码,因为是测试环境,Redi ...

  6. python自动获取微信公众号最新文章

    微信公众号获取思路 常用的微信公众号文章获取方法有搜狐.微信公众号主页获取和api接口等多个方法. 听说搜狐最近不怎么好用了,之前用的api接口也频繁维护,所以用了微信公众平台来进行数据爬取. 首先登 ...

  7. NBA现役球员季后赛总得分排名前十都有谁?

    随着常规赛的结束,NBA的季后赛即将开始上演.众所周知,季后赛和比赛强度与常规赛有所不同,比赛的防守强度会有所提升! 那么,在这些现役球员之中,季后赛总得分排名前十都有那些球员呢?美国媒体<FW ...

  8. Python自动获取邮箱验证码【上集】

    本文阅读时长:3-5min 声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 前置:Google IMAP协议设置 与 专用密码设置 本次教程为自动获取邮箱验证码实 ...

  9. Python自动获取QQ群消息

    由于WebQQ关闭了,无法通过webQQ来自动的获取QQ中的消息,故采用模拟人查看消息的操作方式来实现自动获取消息.通过调用win32实现窗口监听,找到需要获取的消息窗口句柄,再通过模拟Ctrl+C和 ...

最新文章

  1. Adaboost算法原理以及matlab代码实现(超详细)
  2. boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::vector的测试程序
  3. invalid character found in the request target 异常
  4. Linux用于账号文件,linux的文件及账号管理
  5. axure rp 创建弹框_如何在Axure RP 9中创建交换机
  6. 小虾的sql server 2000 成长之路
  7. tensorflow精进之路(二十三)——Object Detection API目标检测(上)(Fast R-CNN算法)
  8. centos ipython tab键上下键不起作用
  9. Linux系统下安装ssh服务
  10. 4 配置端口聚合提供冗余备份链路
  11. 【单片机基础篇】51单片机流水灯原理
  12. c语言中百分号后面跟的数字_C语言中的各种百分号都代表什么意思? c语言中百分号后的数字是...
  13. 供应科研试剂乙缩醛-琥珀酰亚胺酯,Acetal-NHS (SDMB)
  14. 并发中的同步锁(synchronized)
  15. Linux多功能下载机(Arias2)
  16. python手机话费_Python软件测试中“电话费”问题的解决方案,python,版本,账单,题解...
  17. 励志共勉一句话经典语录
  18. C语言 两个整数的四则运算
  19. 电容电阻电感在电路中的作用
  20. c语言用矩形法计算积分,C++编程:写一个用矩形法求定积分的通用函数

热门文章

  1. 你们还好意思再骂慈禧太后吗?
  2. Spring概念、类注解和Bean作用域
  3. GIF图片原理和储存结构深入解析
  4. java基础----网络编程
  5. Fibonacci数列C语言三种实现方法
  6. vue-router和location.href的用法区别是什么?
  7. SimpleDateFormat 时间的格式化与解析
  8. 【IDE-Visual Studio】360截图快捷键与vs2010 类向导冲突
  9. DB2删除schema和该模式下所有对象
  10. 教你设置无线路由器 (Mercury图解)