【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中,感兴趣的话可以自己分析看看其他数据情况。

相关推荐
数据智能老司机4 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机5 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i5 小时前
drf初步梳理
python·django
每日AI新事件5 小时前
python的异步函数
python
这里有鱼汤6 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
wang_yb15 小时前
Manim实现脉冲闪烁特效
databook·manim
databook15 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室16 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python