如何更改 seaborn 联合图中的十六进制大小? (六角本身,而不是垃圾箱)

Posted

技术标签:

【中文标题】如何更改 seaborn 联合图中的十六进制大小? (六角本身,而不是垃圾箱)【英文标题】:How do I change the hex size in a seaborn jointplot? (the hexes themselves, not the bins) 【发布时间】:2017-04-16 19:43:25 【问题描述】:

在 Seaborn 中使用六边形联合图生成一些“热图”,显示篮球运动员在球场上的投篮次数最多。数据来自 pandas 数据框,其中 LocX 表示球员在球场上的水平位置(-250 和 250 是边线,0 是与篮筐一致),LocY 是到篮筐的纵向距离。我使用相同的代码为多个玩家生成地图,但六边形的大小在玩家之间差异很大(即使两个玩家的总射门次数相似)。这是我想要的Good Plot,

但这里有一个根本不起作用Bad Plot。

这是我生成它的代码:

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”作为参数?有一个关于它的讨论。 github.com/mwaskom/seaborn/pull/186 成功了!真的很奇怪,我之前尝试过,但没有运气。想知道我做错了什么。非常感谢! 很好,我很高兴它有效。 你是外加bg图片还是seaborn有什么功能? 【参考方案1】:

您可以解析gridsize 参数。较高的值会导致较小的 hexbins。

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)

【讨论】:

对我不起作用:AttributeError: 'QuadMesh' object has no property 'gridsize'

以上是关于如何更改 seaborn 联合图中的十六进制大小? (六角本身,而不是垃圾箱)的主要内容,如果未能解决你的问题,请参考以下文章

如何在子图中绘制多个 Seaborn 联合图

如何使用 seaborn FacetGrid 更改字体大小?

更改刻度名称后,如何修复 seaborn 条形图中缺少的条形?

更改 Seaborn 散点图中的图例位置和标签

如何使用 seaborn factorplot 更改图形大小

如何在seaborn小提琴图中为每个组分配不同的位置