这个python案例显示被射门次数对比?

wen python案例 8

本文目录导读:

这个python案例显示被射门次数对比?

  1. 📊 完整的射门次数对比案例
  2. 📈 如果你想要单场比赛的两队对比
  3. 🎯 核心代码说明
  4. 💡 使用提示

我理解你可能想问关于Python代码中射门次数对比的可视化案例,但由于你没有提供具体的代码或图片,我需要先假设你想要的是足球比赛数据中双方射门次数的对比图表

我为你提供一个完整的Python示例,使用MatplotlibPandas来对比两支球队的射门次数:


📊 完整的射门次数对比案例

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 准备数据(示例数据:两支球队的射门数据)
data = {
    '球队': ['皇马', '巴萨', '曼城', '利物浦', '拜仁', '巴黎'],
    '射门次数': [18, 22, 15, 20, 17, 19],
    '射正次数': [8, 12, 6, 9, 7, 10],
    '进球数': [3, 4, 2, 3, 2, 3]
}
df = pd.DataFrame(data)
# 设置中文字体(避免乱码)
plt.rcParams['font.sans-serif'] = ['SimHei']  # Windows
# plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']  # Mac
plt.rcParams['axes.unicode_minus'] = False
# 创建图形和子图
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
fig.suptitle('足球比赛射门数据分析', fontsize=16, fontweight='bold')
# 1. 水平条形图 - 总射门次数对比
ax1 = axes[0, 0]
bars1 = ax1.barh(df['球队'], df['射门次数'], color=['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FFEAA7', '#DDA0DD'])
ax1.set_xlabel('射门次数')
ax1.set_title('总射门次数对比')
for i, (v, team) in enumerate(zip(df['射门次数'], df['球队'])):
    ax1.text(v + 0.5, i, str(v), va='center', fontsize=10)
# 2. 分组柱状图 - 射门 vs 射正
ax2 = axes[0, 1]
x = np.arange(len(df['球队']))
width = 0.35
bars2a = ax2.bar(x - width/2, df['射门次数'], width, label='射门次数', color='#FF6B6B')
bars2b = ax2.bar(x + width/2, df['射正次数'], width, label='射正次数', color='#4ECDC4')
ax2.set_xticks(x)
ax2.set_xticklabels(df['球队'])
ax2.set_ylabel('次数')
ax2.set_title('射门次数 vs 射正次数')
ax2.legend()
ax2.grid(axis='y', alpha=0.3)
# 3. 堆叠柱状图 - 射门组成
ax3 = axes[1, 0]
bars3a = ax3.bar(df['球队'], df['射正次数'], label='射正次数', color='#45B7D1')
bars3b = ax3.bar(df['球队'], df['射门次数'] - df['射正次数'], bottom=df['射正次数'], 
                 label='射偏次数', color='#FFEAA7')
ax3.set_ylabel('次数')
ax3.set_title('射门组成分析(射正+射偏)')
ax3.legend()
ax3.grid(axis='y', alpha=0.3)
# 4. 饼图 - 射门效率(射正率)
ax4 = axes[1, 1]
colors = plt.cm.Set3(np.linspace(0, 1, len(df)))
ax4.pie(df['射门次数'], labels=df['球队'], autopct='%1.1f%%', 
        startangle=90, colors=colors, explode=[0.05]*len(df))
ax4.set_title('各队射门占比')
# 调整布局
plt.tight_layout()
plt.show()
# 输出详细数据表格
print("\n📋 射门详细数据表:")
print(df.to_string(index=False))

📈 如果你想要单场比赛的两队对比

import matplotlib.pyplot as plt
# 单场比赛数据(2024-25欧冠决赛 皇马vs曼城)
teams = ['皇家马德里', '曼城']
shots = [15, 12]          # 总射门
shots_on_target = [6, 4]  # 射正
goals = [2, 1]            # 进球
x = np.arange(len(teams))
width = 0.25
fig, ax = plt.subplots(figsize=(10, 6))
bars1 = ax.bar(x - width, shots, width, label='总射门', color='#FF6B6B')
bars2 = ax.bar(x, shots_on_target, width, label='射正', color='#4ECDC4')
bars3 = ax.bar(x + width, goals, width, label='进球', color='#FFD93D')
ax.set_ylabel('次数')
ax.set_title('单场比赛射门对比')
ax.set_xticks(x)
ax.set_xticklabels(teams)
ax.legend()
# 在柱子上添加数值
for bars in [bars1, bars2, bars3]:
    for bar in bars:
        height = bar.get_height()
        ax.text(bar.get_x() + bar.get_width()/2., height + 0.2,
                f'{int(height)}', ha='center', va='bottom')
plt.show()

🎯 核心代码说明

图表类型 用途 关键参数
水平条形图 直观对比多队总射门 barh()
分组柱状图 同队对比不同指标 width 调整分组间隙
堆叠柱状图 展示射正/射偏构成 bottom 参数实现堆叠
饼图 展示射门占比 autopct 显示百分比

💡 使用提示

  1. 中文乱码:如遇中文乱码,安装中文字体或使用:

    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # Windows
  2. 数据来源:数据可以从CSV文件、API(如Football-Data.org)或手动输入。

  3. 个性化:可以修改颜色(color参数)、添加网格线(grid())、调整图例位置等。


如果你有具体的代码或数据需要分析,请提供给我,我可以帮你调试或优化,你的问题中“显示被射门次数”是指对方球队的射门次数吗?如果是,稍作修改即可实现。

抱歉,评论功能暂时关闭!