爬取https://nba.hupu.com/stats/players网址中的骑士队球员的比赛数据,并使用分布雷达可视化图表将其呈现。
时间: 2023-12-03 17:01:46 浏览: 94
好的,这个问题可以分为两个步骤来完成。第一步是爬取骑士队球员的比赛数据,第二步是使用分布雷达可视化图表将其呈现。下面是具体的步骤:
1. 爬取骑士队球员的比赛数据
首先,我们需要使用 Python 的 requests 库和 BeautifulSoup 库来爬取网页数据。具体步骤如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://nba.hupu.com/stats/players'
params = {'tid': 9} # 骑士队的 tid 是 9
response = requests.get(url, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', {'id': 'players'})
# 解析表格数据
data = []
for tr in table.find_all('tr')[1:]:
tds = tr.find_all('td')
if len(tds) > 0:
player = tds[1].text.strip()
data.append({
'player': player,
'mp': float(tds[6].text),
'fg': float(tds[7].text),
'fga': float(tds[8].text),
'fg_pct': float(tds[9].text),
'tp': float(tds[10].text),
'tpa': float(tds[11].text),
'tp_pct': float(tds[12].text),
'ft': float(tds[13].text),
'fta': float(tds[14].text),
'ft_pct': float(tds[15].text),
'orb': float(tds[16].text),
'drb': float(tds[17].text),
'trb': float(tds[18].text),
'ast': float(tds[19].text),
'stl': float(tds[20].text),
'blk': float(tds[21].text),
'tov': float(tds[22].text),
'pf': float(tds[23].text),
'pts': float(tds[24].text)
})
print(data)
```
运行上面的代码,即可得到骑士队球员的比赛数据。这里只获取了每场比赛的总数据,如果需要获取更详细的数据,可以点击每个球员的链接进入详情页进行爬取。
2. 使用分布雷达可视化图表将其呈现
接下来,我们需要使用 Python 的 matplotlib 库来生成分布雷达可视化图表。具体步骤如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 计算每个指标的平均值
avg_data = {}
for key in data[0].keys():
if key != 'player':
avg_data[key] = np.mean([d[key] for d in data])
# 绘制图表
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111, polar=True)
ax.set_theta_zero_location('N')
# 设置坐标轴标签
indicators = list(avg_data.keys())
indicators.remove('mp')
angles = np.linspace(0, 2 * np.pi, len(indicators), endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
ax.set_thetagrids(angles * 180 / np.pi, indicators)
# 绘制骑士队球员的数据
for d in data:
stats = list(d.values())[1:]
stats = np.concatenate((stats, [stats[0]]))
ax.plot(angles, stats, linewidth=1, alpha=0.5)
# 绘制各项指标的平均值
avg_stats = list(avg_data.values())
avg_stats = np.concatenate((avg_stats, [avg_stats[0]]))
ax.plot(angles, avg_stats, linewidth=2, label='Average', color='red')
# 设置图例和标题
ax.legend()
ax.set_title('Cleveland Cavaliers Player Stats', fontsize=20)
plt.show()
```
运行上面的代码,即可生成分布雷达可视化图表,展示骑士队球员的比赛数据。其中,每个分区代表一个指标,半径表示该指标的数值,红色线条表示该指标的平均值,黑色线条表示每个球员的数据。通过这个图表,可以直观地比较每个球员在不同指标上的表现,以及整个骑士队的表现和平均水平的差距。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)