首页 > 解决方案 > 使用 seaborn 包关闭联合图上的 x 轴边缘分布轴

问题描述

这里有一个类似的问题,但是我无法根据我的情况调整提供的解决方案。

我想要一个联合图,kind=hex同时删除 x 轴的边缘图,因为它不包含任何信息。在链接的问题中,建议直接使用 JointGrid,但是 Seaborn 似乎无法绘制 hexbin 图。

joint_kws = dict(gridsize=70)
g = sns.jointplot(data=all_data, x="Minute of Hour", y="Frequency", kind="hex", joint_kws=joint_kws)
plt.ylim([49.9, 50.1])
plt.xlim([0, 60])
g.ax_joint.axvline(x=30,ymin=49, ymax=51)
plt.show()
plt.close()

结果图

  1. 如何删除 x 轴上的边距图?
  2. 为什么不画垂直线?
  3. 还有一种方法可以将右边距交换为更类似于密度的图吗?

编辑:这是数据集的样本(33kB)。阅读它pd.read_pickle("./data.pickle")

标签: matplotlibseabornvisualization

解决方案


我一直在摆弄一个模拟问题(使用散点图而不是 hexbin)。最后,您的第一点的解决方案非常简单。只需添加这一行:

g.ax_marg_x.remove()

关于你的第二点,我不知道为什么没有画线。但是一种解决方法似乎是vlines改用:

g.ax_joint.vlines(x=30, ymin=49, ymax=51)

关于你的最后一点,恐怕我还没有理解。如果您的意思是增加/减少子图之间的边距,您可以使用doc 中space所述的参数。


推荐阅读