Python实现:循环为散点图中高于均值的球员添加名称标签
散点图条件标注实现方法
你可以直接用循环遍历数据集完成符合条件球员的名称标注,逻辑简单易调整,非常适合初学者使用,具体实现步骤如下:
- 先将你预先计算好的两个平均值定义为独立变量,避免硬编码重复写数值:
# 两项指标的平均值 gls_average = 9.751677852348994 npxg_p90_average = 0.34438111920973147
- 在你绘制完两条平均参考线、还没加标题和落款的位置,加入循环遍历逻辑,逐行判断球员数据是否满足标注条件,满足就添加对应文本标签:
# 遍历筛选后的前锋数据集每一行 for _, row in striker_df.iterrows(): # 判断规则:进球数高于平均 或 每90分钟非点球预期进球高于平均 if row['Gls'] > gls_average or row['npxG_p90'] > npxg_p90_average: # 给坐标加微小偏移,避免标签直接覆盖在散点上 graph.text( x=row['Gls'] + 0.25, y=row['npxG_p90'] + 0.004, s=row['Player'], # 请替换为你数据集里存储球员姓名的实际列名 fontsize=9 )
调整提示
- 代码里的坐标偏移数值可以根据实际显示效果调整,只要标签和对应散点不重叠即可
- 如果觉得标注的球员太多太乱,可以把判断条件里的
or换成and,只给两项数据都高于平均的球员加标签 - 如果你的数据集里球员名列名不是
Player(比如是小写player或者其他命名),记得替换成对应列名否则会报错
附参考散点图效果:
内容的提问来源于stack exchange,提问作者AOrlandini
相关产品推荐
相关产品推荐

