代码之家  ›  专栏  ›  技术社区  ›  De Gninou

使用seaborn[duplicate]构建的子地块回归图

  •  0
  • De Gninou  · 技术社区  · 7 年前

    matplotlib 在OOP样式中:

    f, axarr = plt.subplots(2, sharex=True)
    axarr[0].plot(...)
    axarr[1].plot(...)
    

    这使得跟踪多个图形和子图变得更容易。

    问:如何使用seaborn这种方式?或者,如何改变 this example 去OOP风格?怎么说 seaborn 绘图函数,如 lmplot 哪一个 Figure Axes

    0 回复  |  直到 11 年前
        1
  •  234
  •   mwaskom    11 年前

    这在一定程度上取决于您使用的seaborn函数。

    seaborn中的绘图函数大致分为两类

    • regplot , boxplot kdeplot
    • “图形级”功能,包括 lmplot , factorplot , jointplot

    第一组是通过一个显式的 ax 争论和返回 Axes 对象。这表明,您可以通过传递 轴线 对他们来说:

    f, (ax1, ax2) = plt.subplots(2)
    sns.regplot(x, y, ax=ax1)
    sns.kdeplot(x, ax=ax2)
    

    轴级功能只能在 而且不会弄乱图形,因此它们可以在面向对象的matplotlib脚本中完美地共存。

    第二组函数(图形级)的区别在于,生成的图可能包含多个轴,这些轴总是以“有意义”的方式组织。这意味着函数需要对图形有完全的控制,所以不可能绘制一个 一个已经存在的。调用函数总是初始化一个图形并为它所绘制的特定绘图设置它。

    但是,一旦你打过电话 lmplot公司 ,它将返回以下类型的对象 FacetGrid FacetGrid.fig FacetGrid.axes 论据。这个 函数非常相似,但它使用 JointGrid 对象。因此,您仍然可以在面向对象的上下文中使用这些函数,但所有的自定义都必须在调用函数之后进行。