Fro*_*ame 93 python oop matplotlib seaborn
我更喜欢使用matplotlibOOP风格:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
Run Code Online (Sandbox Code Playgroud)
这样可以更轻松地跟踪多个图形和子图.
问题:如何使用seaborn这种方式?或者,如何将此示例更改为OOP样式?如何将seaborn绘图函数描述为lmplot哪个Figure或哪个Axes绘图?
mwa*_*kom 202
这取决于你正在使用的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)
Run Code Online (Sandbox Code Playgroud)
轴级函数只会绘制到一个Axes并且不会弄乱图形,因此它们可以在面向对象的matplotlib脚本中完美地共存.
第二组函数(图级)的特征在于,得到的图可能包括几个始终以"有意义"方式组织的轴.这意味着函数需要完全控制图形,因此不可能绘制lmplot一个已存在的函数.调用该函数始终初始化一个图形并将其设置为它绘制的特定图形.
但是,一旦调用lmplot,它将返回该类型的对象FacetGrid.这个对象有一些方法可以对结果图进行操作,这些方法对图的结构有所了解.它还在FacetGrid.fig和FacetGrid.axes参数处公开了底层图形和轴数组.该jointplot函数非常相似,但它使用了一个JointGrid对象.因此,您仍然可以在面向对象的上下文中使用这些函数,但是在调用函数之后,所有自定义都必须进行.
| 归档时间: |
|
| 查看次数: |
63079 次 |
| 最近记录: |