- 从[NBA 的数据库](https://www.basketball-reference.com/players/)中选择一位喜欢的球员,选择他的任意一组数据 - 保存成 txt 格式 - 使用Numpy读取并格式化 - 再使用Matplotlib画出图形
时间: 2024-10-06 13:02:40 浏览: 88
组49_数据接口说明文档1
首先,假设你想选择勒布朗·詹姆斯(LeBron James),因为他是NBA的一位知名球星。你可以从篮球参考网站上获取他的职业生涯统计数据。例如,选择得分、篮板和助攻等数据。为了简化操作,我们将只考虑他最近一场比赛的数据。
步骤1: 下载数据
由于网站通常不允许直接爬取大量数据,我们需要手动复制粘贴或者使用网页抓取工具(如BeautifulSoup)提取数据。这里我们假设你已经复制了数据并将其保存在一个文本文件(比如lebron_james_stats.txt)中。
步骤2: 保存成txt格式
假设数据结构如下(以CSV为例):
```
Date,Opponent,Points,Rebounds,Assists
...
```
将数据保存到名为lebron_james_stats.txt的文本文件中。
步骤3: 使用Numpy读取并格式化
```python
import numpy as np
data = []
with open("lebron_james_stats.txt", "r") as file:
lines = file.readlines()[1:] # 去掉第一行表头
for line in lines:
stats = line.strip().split(",") # 分割每一行数据
data.append([stats[1], float(stats[2]), float(stats[3]), float(stats[4])]) # 球员名和每项数据
# 将数据转换为numpy数组
np_data = np.array(data)
print(np_data.shape) # 输出数据的形状,如(100, 4),代表有100条记录,每条记录有4个字段
```
步骤4: 使用Matplotlib画出图形
假设我们要绘制得分(Points)、篮板(Rebounds)和助攻(Assists)随时间的变化趋势:
```python
import matplotlib.pyplot as plt
# 按日期排序数据
sorted_data = np_data[np.argsort(np_data[:, 0])]
dates = sorted_data[:, 0]
scores = sorted_data[:, 1]
rebounds = sorted_data[:, 2]
assists = sorted_data[:, 3]
fig, ax = plt.subplots(figsize=(12, 6))
ax.plot(dates, scores, label='Scores', marker='o')
ax.plot(dates, rebounds, label='Rebounds', marker='^')
ax.plot(dates, assists, label='Assists', marker='v')
ax.set_xlabel('Date')
ax.set_ylabel('Statistics')
ax.set_title('LeBron James Recent Game Stats')
ax.legend()
plt.show()
```
这将会显示三条线图,分别表示得分、篮板和助攻的变化。
阅读全文