Seaborn jointplot:固定边缘范围

时间:2018-01-08 17:10:22

标签: python seaborn

我想在hexbin图上修复x和y边缘分布的bin范围,因为我想用另一个分布图来覆盖边缘。

我可以使用

设置垃圾箱数量
g=sns.jointplot(x='age',y='value',data=joint_data, space=0, color='g', kind='hex',
                stat_func = None, marginal_kws=dict(bins=num_bins))

我可以使用

沿两个轴设置特定的箱子
g=sns.jointplot(x='age',y='value',data=joint_data, space=0, color='g', kind='hex',
                stat_func = None, marginal_kws=dict(bins=numpy.linspace(x_min, x_max,100))

但我想分别为轴定义不同的范围。单独的轴似乎不是marginal_kws。

1 个答案:

答案 0 :(得分:0)

如果您想分别访问两个边缘轴,则需要直接使用JointGrid,而不是用户友好的jointplot()

看看seaborn's JointGrid documentation。特别是标题为“分别绘制两个边缘图”的例子是最相关的。基本上,您可以使用g.ax_marg_xg.ax_marg_y来获得边缘轴的参考,然后您可以在这些轴上使用任何您想要的绘图功能

g = sns.JointGrid(x="total_bill", y="tip", data=tips)
g = g.plot_joint(plt.scatter, color="m", edgecolor="white")
_ = g.ax_marg_x.hist(tips["total_bill"], color="b", alpha=.6,
                      bins=np.arange(0, 60, 5))
_ = g.ax_marg_y.hist(tips["tip"], color="r", alpha=.6,
                      orientation="horizontal",
                      bins=np.arange(0, 12, 1))