频率热图 matplotlib/seaborn
Frequency heatmap matplotlib/seaborn
有谁知道下图是如何构造的?可能使用 seaborn 热图或 matplotlib 工具?
我在 pandas datframe 中有相关数据;过去 5 年各个足球联赛每场比赛的主场进球和客场进球,我只是不确定这样的数字是如何构建的?
我的数据是下面的形式;
FTHG FTAG
2 0
3 1
2 2
1 2
FTHG = 全职家庭目标
FTAG = 全场客场进球数
使用 2 列创建交叉表(计数矩阵)。将它除以匹配总数以获得百分比。然后放入heatmap.
您可以自行尝试各种样式等。
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)
输出:
有谁知道下图是如何构造的?可能使用 seaborn 热图或 matplotlib 工具?
我在 pandas datframe 中有相关数据;过去 5 年各个足球联赛每场比赛的主场进球和客场进球,我只是不确定这样的数字是如何构建的?
我的数据是下面的形式;
FTHG FTAG
2 0
3 1
2 2
1 2
FTHG = 全职家庭目标 FTAG = 全场客场进球数
使用 2 列创建交叉表(计数矩阵)。将它除以匹配总数以获得百分比。然后放入heatmap.
您可以自行尝试各种样式等。
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)
输出: