【matplotlib 实战】--柱状图

柱状图,是一种使用矩形条,对不同类别进行数值比较的统计图表。

在柱状图上,分类变量的每个实体都被表示为一个矩形(通俗讲即为"柱子"),而数值则决定了柱子的高度。

1. 主要元素

柱状图是一种用长方形柱子表示数据的图表。

它包含三个主要元素:

  1. 横轴(x轴):表示数据的类别或时间。
  2. 纵轴(y轴):表示数据的数量或百分比。
  3. 柱子:用于表示每个数据类别或时间段的数量或百分比,柱子的高度与数据的大小成比例。

2. 适用的场景

柱状图适用于以下分析场景:

  1. 比较不同类别或时间段的数量或百分比。
  2. 显示数据的分布情况,如数据的最大值、最小值、平均值等。
  3. 强调数据的变化趋势。
  4. 比较不同组之间的差异。
  5. 分析数据的增长或下降情况。

3. 不适用的场景

柱状图不适用于以下分析场景:

  1. 数据之间存在比例关系,如占比、比率等,此时应该使用饼图或堆积图。
  2. 数据之间存在时间序列关系,此时应该使用折线图。
  3. 数据之间存在空间关系,此时应该使用地图。
  4. 数据之间存在相关性关系,此时应该使用散点图。

4. 分析实战

这次选用王者荣耀2023年KPL春季赛 的战队 数据:https://databook.top/wzry/2023-spring

4.1. 数据来源

python 复制代码
fp = "d:/share/league-2023春季赛.csv"

df = pd.read_csv(fp)
df.loc[:, ["排名", "战队", "比赛场次", "胜场"]]

4.2. 数据清理

本次实战用柱状图展示前6名的比赛场次和胜场,也就是每个战队有2个柱子。

python 复制代码
df.loc[:5, ["排名", "战队", "比赛场次", "胜场"]]

4.3. 分析结果可视化

python 复制代码
data = df.loc[:5, ["排名", "战队", "比赛场次", "胜场"]]

with plt.style.context("seaborn-v0_8"):
    fig = plt.figure()
    ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

    teams = data["战队"].tolist()    
    games = {
        "比赛场次": data["比赛场次"].tolist(),
        "胜场": data["胜场"].tolist(),
    }
    width = 0.25
    multiplier = 0

    x = np.arange(len(teams))
    for name, vals in games.items():
        offset = width*multiplier
        rects = ax.bar(x+offset, vals, width, label=name)
        ax.bar_label(rects, padding=3)
        multiplier+=1


    ax.set_title("2023-KPL春季赛前六名")
    ax.set_xticks(x+0.1, teams)
    ax.legend(loc="upper left")

第一名重庆狼队,比赛场次总数倒数第二,但是胜场数确实第一,胜率明显高于其他队伍,不愧是冠军队伍。

战队,选手和各个英雄的数据都已经整理好分享在上面的URL中,感兴趣的话可以自己分析看看其他数据情况。

相关推荐
2601_962885723 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
李航19834 小时前
DeepSeekAI建模三 - 实战建模一组柜子
人工智能·python·计算机视觉·ai·ai编程
严谨的麻辣烫5 小时前
静态代理 IP 的出口一致性如何验证?Python 请求检测与异常排查
开发语言·python·http·网络安全
我命由我123455 小时前
5-1.Python 编码进阶 - 函数进阶(参数、返回值、递归、函数作为参数传递、lambda 匿名函数)
java·服务器·数据库·后端·python·java-ee·python3.11
FITA阿泽要努力5 小时前
Fork Agent:共享上下文的艺术
开发语言·python·agent
DeeGLMath6 小时前
optimtool最新版研究梯度优化
python·optimtool·梯度优化
坐吃山猪6 小时前
Python-Hermite基函数
开发语言·python
空~自由6 小时前
Python 正则 . * ? .* .*? (.*?) 通俗讲解
开发语言·python
Web3&Basketball6 小时前
DeepSeek V4.1 Flash 实测:Token 砍半、Search API 跑通
数据库·人工智能·python·大模型·api调用·deepseek·推理优化
墨子夕6 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(第一篇)
java·python·设计模式