【发布时间】:2016-06-27 05:11:22
【问题描述】:
如何在 seaborn 中更改我的 lmplot 的图形大小?
这是我当前的代码,但显然 figsize 不被接受。
sns.lmplot(x="x", y="y", hue="category", data=df,fit_reg=False,
markers=["o", "x"], palette="Set1",figsize=(7,7));
谢谢。
【问题讨论】:
如何在 seaborn 中更改我的 lmplot 的图形大小?
这是我当前的代码,但显然 figsize 不被接受。
sns.lmplot(x="x", y="y", hue="category", data=df,fit_reg=False,
markers=["o", "x"], palette="Set1",figsize=(7,7));
谢谢。
【问题讨论】:
比较这两种设置图表大小的方式:
sns.lmplot(data=conversion, x='Week Index', y='Lead-Ann', height=4, aspect=5)
plt.figure(figsize=(24,4))
sns.regplot(data=conversion, x='Week Index', y='Lead-Ann')
Seaborn 文档解释了不同之处:seaborn.lmplot
了解 regplot() 和 lmplot() 之间的区别可以 有点棘手。事实上,它们是密切相关的,因为 lmplot() 使用 regplot() 内部并采用其大部分参数。然而, regplot() 是轴级函数,因此它直接绘制到轴上 (当前活动的轴或由 ax 提供的轴 参数),而 lmplot() 是一个图形级函数并创建其 自己的图形,通过 FacetGrid 管理。这有几 结果,即 regplot() 可以愉快地共存于一个图中 与其他类型的绘图,并将遵循全局 matplotlib 颜色 循环。相比之下,lmplot() 需要占据整个图形,而 大小和颜色循环通过函数参数控制, 忽略全局默认值。
【讨论】:
size 参数已重命名为 height!
由于lmplot 是“图形级”,figsize 由两个参数确定,size 和aspect。我认为size=7 会做你想做的事,但我可能会走得很远。
在文档中(搜索“更改构面的高度和纵横比”):http://seaborn.pydata.org/generated/seaborn.lmplot.html
注意:我一直被完全相同的东西弄糊涂了,如果调整大小以拥有一致的界面真的很好。
【讨论】:
在Seaborn 0.9.0中,我认为正确的做法是使用height(默认为5)设置图形的高度,然后使用aspect(默认为1)设置宽度. height * aspect = width.
要制作更大的正方形,只需增加高度:
sns.lmplot(x='x', y='y', hue='category', data=df, height=7);
要使其更宽,请增加纵横比:
sns.lmplot(x='x', y='y', hue='category', data=df, height=7, aspect=1.6);
【讨论】: