在 Seaborn 中使用六边形联合图来生成一些“热图”,显示篮球运动员在球场上投篮次数最多的位置。数据来自 pandas 数据框,其中 LocX 代表球员在球场上的水平位置(-250 和 250 是边线,0 与篮筐成一直线),LocY 是距篮筐的纵向距离。我使用相同的代码为多个玩家生成地图,但玩家之间的六边形大小差异很大(即使两个玩家的总射击次数相似)。这就是我想要的结果 ,
这是我生成它的代码:
cmap=plt.cm.gist_heat_r
joint_shot_chart = sns.jointplot(shot_df.LocX, shot_df.LocY, stat_func=None, kind='hex', space=0, color=cmap(.2), cmap=cmap)
有一个 kwarg 可以用来改变六边形的大小吗?
您可以解析
gridsize
参数。值越高,六边形越小。
import numpy as np, pandas as pd; np.random.seed(0)
import seaborn as sns; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
joint_kws=dict(gridsize=5)
g = sns.jointplot(x="total_bill", y="tip", data=tips,kind="hex", joint_kws= joint_kws)
将 numpy 导入为 np,将 pandas 导入为 pd; np.随机.种子(0) 将seaborn导入为sns; sns.set(style="white", color_codes=True)
提示 = sns.load_dataset("提示") g = sns.jointplot(x="total_bill", y="tip", data=tips,kind="hex",gridsize=20)