【问题标题】:Frequency heatmap matplotlib/seaborn频率热图 matplotlib/seaborn
【发布时间】:2020-09-22 13:32:21
【问题描述】:

有谁知道像下面这样的图形是如何构造的?可能使用 seaborn heatmap 或 matplotlib 工具?

我在 pandas 数据框中有相关数据;各种足球联赛过去5年每场比赛的主场进球和客场进球,我只是不确定这样的数字将如何构建?

我拥有的数据格式如下;

FTHG  FTAG

 2      0
 3      1
 2      2
 1      2

FTHG = 全职主场进球 FTAG = 全职客场进球

【问题讨论】:

标签: python-3.x matplotlib seaborn heatmap


【解决方案1】:

使用 2 列创建交叉表(计数矩阵)。将其除以匹配总数以获得百分比。然后放入热图。

你可以自己玩各种风格等等。

import pandas as pd
import seaborn as sns

df = pd.DataFrame([[1,0],[2,1],[3,2],[4,2],[5,0],[6,1],[7,1],[2,5],[5,3],
                   [4,0],[1,1],[2,2],[4,3],[1,4],[2,5],[4,6],[1,7],[2,0],
                   [2,2],[0,0],[2,1],[1,2],[1,0],[2,0],[1,1],[1,1],[1,0],
                   [2,5],[0,0],[1,1],[1,3],[1,3],[2,2],[1,1],[0,1],[1,0]], 
                    columns=['FTHG','FTAG'])


df2 = pd.crosstab(df['FTHG'], df['FTAG']).div(len(df))
sns.heatmap(df2, annot=True)

输出:

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 2018-11-23
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2017-08-14
    相关资源
    最近更新 更多