如何绘制非方形 Seaborn jointplot 或 JointGrid
How to plot non-square Seaborn jointplot or JointGrid
我正在尝试使用 Seaborn 的 JointGrid 绘制我的非对称数据。我可以让它使用相等的宽高比,但是我有不需要的空白:
如何删除填充? jointplot and JointGrid 的文档只是说
size : numeric, optional
Size of the figure (it will be square).
我还尝试将 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()
偶然发现这个问题,我自己正在寻找答案。弄清楚后,我想我会 post 解决方案。由于 jointplot
代码似乎非常坚持要有图形正方形,我不知道这是否被认为是不好的做法,但无论如何......
如果我们查看 jointplot
代码并跟随它进入 JointGrid
,则使用 jointplot
的 size
参数(同样 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 图。
对于那些在 Jupyter Notebook 中使用 Seaborn 的人,我建议在 sns.jointplot()
命令之后调用 set_figwidht()
和 set_figheight()
。
my_plot=sns.jointplot(x="K",y="errori",data=risultati , kind="scatter")
my_plot.fig.set_figwidth(13)
Jupyter Example
您需要设置 ylim
和 xlim
参数,这会将 x 轴和 y 轴限制在您指定的元组范围内:
例如
sns.jointplot(x="n_estimators", y="learning_rate", data=data,
color="#172235", height=8, ratio=10, space=0,
ylim=(0, 1.1), xlim=(-20, 310)) # <-- this
我正在尝试使用 Seaborn 的 JointGrid 绘制我的非对称数据。我可以让它使用相等的宽高比,但是我有不需要的空白:
如何删除填充? jointplot and JointGrid 的文档只是说
size : numeric, optional
Size of the figure (it will be square).
我还尝试将 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()
偶然发现这个问题,我自己正在寻找答案。弄清楚后,我想我会 post 解决方案。由于 jointplot
代码似乎非常坚持要有图形正方形,我不知道这是否被认为是不好的做法,但无论如何......
如果我们查看 jointplot
代码并跟随它进入 JointGrid
,则使用 jointplot
的 size
参数(同样 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 图。
对于那些在 Jupyter Notebook 中使用 Seaborn 的人,我建议在 sns.jointplot()
命令之后调用 set_figwidht()
和 set_figheight()
。
my_plot=sns.jointplot(x="K",y="errori",data=risultati , kind="scatter")
my_plot.fig.set_figwidth(13)
Jupyter Example
您需要设置 ylim
和 xlim
参数,这会将 x 轴和 y 轴限制在您指定的元组范围内:
例如
sns.jointplot(x="n_estimators", y="learning_rate", data=data,
color="#172235", height=8, ratio=10, space=0,
ylim=(0, 1.1), xlim=(-20, 310)) # <-- this