You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

soccerplots雷达图数字显示不全问题求助

问题描述

使用soccerplots库绘制雷达图时,图中的数字被截断一半。已尝试调整z-order、绘图顺序、颜色、字体及透明度,但问题仍未解决。mplsoccer库可正常运行,推测需更新soccerplots包以解决z-order层级问题。

问题现象:雷达图的数值标签仅显示上半部分,下半部分被图层遮挡截断。

原代码:

import numpy as np
import matplotlib.pyplot as plt
from math import pi
from soccerplots.radar_chart import Radar

# Parameter names
params = ['xAssist', 'Key Passes', 'Crosses Into Box', 'Cross Completion %', 'Deep Completions',
          'Progressive Passes', 'Prog. Pass Accuracy', 'Dribbles', 'Progressive Runs',
          'PADJ Interceptions', 'Succ. Def. Actions', 'Def Duel Win %']

# Range values
ranges = [(0.0, 0.15), (0.0, 0.67), (0.06, 6.3), (19.51, 50.0), (0.35, 1.61),
          (6.45, 11.94), (62.9, 79.4), (0.43, 4.08), (0.6, 2.33),
          (4.74, 7.2), (8.59, 12.48), (50.66, 66.67)]

# Parameter values
values = [0.11, 0.53, 0.70, 27.66, 1.05, 6.84, 84.62, 4.56, 2.22, 5.93, 8.88, 64.29]


# Plot radar
fig, ax = radar.plot_radar(ranges=ranges, params=params, values=values, 
                           radar_color=['#B6282F', '#808080'], zorder=1, alphas=[0.3])

## instantiate object 
radar = Radar(background_color="#121212", patch_color="#28252C", label_color="#F0FFF0",
              range_color="#F0FFF0", fontfamily="Arial", )


plt.show()
解决方案

1. 修正代码执行顺序

原代码存在核心逻辑错误:在调用radar.plot_radar()之后才实例化Radar对象,这会导致未定义行为,是引发显示问题的直接诱因。必须先创建Radar实例,再调用绘图方法。

2. 更新soccerplots包

soccerplots早期版本确实存在z-order层级问题,导致数值标签被雷达图层遮挡。执行以下命令更新到最新版本:

pip install --upgrade soccerplots

3. 修正后的完整代码

import numpy as np
import matplotlib.pyplot as plt
from soccerplots.radar_chart import Radar

# Parameter names
params = ['xAssist', 'Key Passes', 'Crosses Into Box', 'Cross Completion %', 'Deep Completions',
          'Progressive Passes', 'Prog. Pass Accuracy', 'Dribbles', 'Progressive Runs',
          'PADJ Interceptions', 'Succ. Def. Actions', 'Def Duel Win %']

# Range values
ranges = [(0.0, 0.15), (0.0, 0.67), (0.06, 6.3), (19.51, 50.0), (0.35, 1.61),
          (6.45, 11.94), (62.9, 79.4), (0.43, 4.08), (0.6, 2.33),
          (4.74, 7.2), (8.59, 12.48), (50.66, 66.67)]

# Parameter values
values = [0.11, 0.53, 0.70, 27.66, 1.05, 6.84, 84.62, 4.56, 2.22, 5.93, 8.88, 64.29]

# 先实例化Radar对象
radar = Radar(background_color="#121212", patch_color="#28252C", label_color="#F0FFF0",
              range_color="#F0FFF0", fontfamily="Arial")

# 再调用绘图方法
fig, ax = radar.plot_radar(ranges=ranges, params=params, values=values, 
                           radar_color=['#B6282F', '#808080'], zorder=1, alphas=[0.3])

plt.show()

4. 额外优化建议

如果更新包和修正顺序后仍有轻微截断,可尝试:

  • 在Radar实例化时添加fontsize参数调整字体大小,例如fontsize=10
  • 绘图后执行plt.tight_layout()自动调整图表布局,或通过ax.set_ylim()手动扩展y轴范围

内容的提问来源于stack exchange,提问作者PhilippK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:27:47