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

谢谢。

【问题讨论】:

    标签: python seaborn


    【解决方案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 不确定,可能值得提出一个新问题!或者这个答案可能会有所帮助:stackoverflow.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);
    

    【讨论】:

      猜你喜欢
      • 2018-09-09
      • 2016-09-17
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2021-03-17
      • 2020-10-01
      相关资源
      最近更新 更多