我正在尝试使用Seaborn的JointGrid绘制非对称数据。我可以使它使用相等的长宽比,但是我有多余的空格:

python - 如何绘制非方形Seaborn关节图或JointGrid-LMLPHP

如何删除填充物? jointplotJointGrid的文档都只是说



我还尝试将extent kwarg馈送到jointplot和JointGrid以及ylim都没有运气。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
x = np.random.normal(0.0, 10.0, 1000)
y = np.random.normal(0.0, 1.0, 1000)
joint = sns.jointplot(x, y)
joint.plot_marginals(sns.distplot, kde=False)
joint.ax_joint.set_aspect('equal')  # equal aspect ratio
plt.show()

最佳答案

偶然发现了这个问题,自己寻找答案。弄清楚了之后,我想我应该发布解决方案了。由于jointplot代码似乎非常坚持使用数字正方形,所以我不知道这是否被认为是不正确的做法,但是无论如何...

如果我们浏览jointplot代码并将其跟随到JointGrid中,则在以下表达式中将使用size(以及jointplot)的JointGrid参数:

f = plt.figure(figsize=(size, size))
# ... later on
self.fig = f

因此,要获取非正方形的JointGrid图,只需运行:
grid = sns.jointplot(...)
grid.fig.set_figwidth(6)
grid.fig.set_figheight(4)
grid.savefig("filename.png", dpi=300)

6x4的数字。

关于python - 如何绘制非方形Seaborn关节图或JointGrid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29909515/

10-10 00:05