matplotlib中subplot和axes的区别
文章图片
matplotlib-logo.png 文:张利东
公众号:DongTalks
1. 缘起
记得上次研究matplotlib的时候就被subplot和axes搞的晕头转向的。这次又遇到这个问题,决定无论如何也要消灭。
2. 行动
上官网查了下,感觉subplot和axes没有太大本质的区别,都是Axes基类的子类。用add_subplot()方法返回的是matplotlib.axes._subplots.AxesSubplot object
,用add_axes()方法返回的是matplotlib.axes._axes.Axes object
。
【matplotlib中subplot和axes的区别】Github的官方教程里面写到
The Figure is the top-level container in this hierarchy. It is the overall window/page that everything is drawn on. You can have multiple independent figures and Figures can contain multiple Axes.也就是说,主要操作都是在axes上,axes可以通过调用subplot(方法?)生成,所以两者大多数人情况下是同义词。
Most plotting ocurs on an Axes. The axes is effectively the area that we plot data on and any ticks/labels/etc associated with it. Usually we'll set up an Axes with a call to subplot (which places Axes on a regular grid), so in most cases, Axes and Subplot are synonymous.
大多数情况下相同,那区别呢?继续查找,在StackOverflow上找到一个解释挺好
Both, add_axes and add_subplot add an axes to a figure. They both return a matplotlib.axes.Axes object.大致意思是
However, the mechanism which is used to add the axes differs substantially.
- subplot返回的AxesSubplot,是在Axes对象上进行了一些基本的预处理,把诸如边框、间距等都根据数据进行了调整,可以直接拿来用;
- subplot是根据subplotgrid来定位,能快速生成几行几列之类的子图;axes是根据相对坐标轴的比例来定位,更灵活更强大,也就需要更多的人工操作;
3. 思考 王兴在饭否里说过的一段话挺有意思
一个不会游泳的人老换游泳池是不能解决问题的。回想自己玩编程这些年,每每遇到难关尝试了几次没能解决,就琢磨着是不是换门语言更好,其实就是想靠换泳池学会游泳。如果那会儿能拿出现在这种不达目的不罢休的劲头,想来也不至于直到现在也还是菜鸟水平了罢。
4. 参考文献
- matplotlib - AnatomyOfMatplotlib,matplotlib
- What are the differences between add_axes and add_subplot?,Stack Overflow
文章图片
2017-08-29-DongTalks.jpg
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理