我强烈地倾向于使用matplotlib
在OOP风格:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
这使得更容易跟踪的多种图形和次要情节。
问:如何使用seaborn这种方式? 或者说,如何改变这个例子来OOP的风格? 如何分辨seaborn
像绘图功能lmplot
该Figure
或Axes
它密谋?
我强烈地倾向于使用matplotlib
在OOP风格:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
这使得更容易跟踪的多种图形和次要情节。
问:如何使用seaborn这种方式? 或者说,如何改变这个例子来OOP的风格? 如何分辨seaborn
像绘图功能lmplot
该Figure
或Axes
它密谋?
这取决于一点上seaborn功能所使用。
在seaborn的绘图功能大致分为两类
regplot
, boxplot
, kdeplot
,和许多其他 lmplot
, factorplot
, jointplot
和一个或两个其他 第一组是通过取一个明确的识别ax
参数并返回一个Axes
对象。 由于这表明,你可以通过你在“面向对象”的风格使用它们Axes
对他们说:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
轴级别的功能将只画到一个Axes
,否则不会与数字混乱,使他们能够在一个面向对象的脚本matplotlib愉快完美共存。
的功能(图电平)的第二组是由这样的事实来区分所得到的曲线图可以潜在地包括多根轴,其总是以“有意义”的方式组织的。 这意味着,该功能需要有比这个数字完全控制,所以它是不可能的绘制,比方说,一个lmplot
到已经存在的一个。 调用函数总是初始化图形并将其设置为特定的情节它的绘图。
但是,一旦你叫lmplot
,它会返回类型的对象FacetGrid
。 这个对象有上了解了一下剧情的结构所产生的阴谋操作的一些方法。 它还公开在轴的底层图形和阵列FacetGrid.fig
和FacetGrid.axes
参数。 该jointplot
功能非常相似,但它采用的是JointGrid
对象。 所以,你仍然可以在面向对象的环境中使用这些功能,但所有的定制已经来到你调用的函数之后。