seaborn:lmplot() 得到了一个意外的关键字参数“figsize”

Posted

技术标签:

【中文标题】seaborn:lmplot() 得到了一个意外的关键字参数“figsize”【英文标题】:seaborn: lmplot() got an unexpected keyword argument 'figsize' 【发布时间】: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));

谢谢。

【问题讨论】:

【参考方案1】:

比较这两种设置图表大小的方式:

生成线性模型图

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!【参考方案2】:

由于lmplot 是“图形级”,figsize 由两个参数确定,sizeaspect。我认为size=7 会做你想做的事,但我可能会走得很远。

在文档中(搜索“更改构面的高度和纵横比”):http://seaborn.pydata.org/generated/seaborn.lmplot.html

注意:我一直被完全相同的东西弄糊涂了,如果调整大小以拥有一致的界面真的很好。

【讨论】:

标题和图例的一致性也会很棒! 还有如何让它与 suplots 一起工作? @Intelligent-Infrastructure 不确定,可能值得提出一个新问题!或者这个答案可能会有所帮助:***.com/a/14770827/1594060【参考方案3】:

在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);

【讨论】:

以上是关于seaborn:lmplot() 得到了一个意外的关键字参数“figsize”的主要内容,如果未能解决你的问题,请参考以下文章

在seaborn lmplot中访问轴对象[重复]

将类似日期时间的对象传递给 seaborn.lmplot

设置 seaborn lmplot 列的单个 ylim

如何在不命名 DataFrame 列的情况下使用 Seaborn.lmplot 函数?

Seaborn lmplot 与方程和 R2 测试

如何在 seaborn lmplot 上添加标题?