爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7947|回复: 8

[经验总结] python画图时plt和ax的区别

[复制链接]

新浪微博达人勋

发表于 2022-4-2 17:26:19 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 飘散的梦 于 2022-4-8 08:56 编辑


                               
登录/注册后可看大图
方法一
       fig,ax=plt.subplots()  #将plt.subplots()函数的返回值赋值给fig和ax两个变量
       *注意:这里subplots有s

解释:1、plt.subplots()是一个函数,返回一个包含figure和axes对象的元组,因此,使用fig,ax=plt.subplots()是将元组分解为fig和ax两个变量。
          2、调用plt.xxx的方法是:from matplotlib.pyplot as plt,因此,plt.xxx是调用了matplotlib的api接口,这个api的背后集成了很多函数,这给操作带来了一定的便利性,但不利于个性化的可视化定制
          3、若要实现更加细致的操作,要用ax.xxx。ax下可修改的变量非常多,基本能包含所有需求,比如坐标轴、图例、标注等。

例如:
     fig,ax=plt.subplots(3,2)  #把父图分成3*2个子图
     axes=ax.flatten()  #ax.flatten()把子图展开赋值给axes, axes[0]便是第一个子图,axes[1]是第二个。


                               
登录/注册后可看大图

方法二:先建立一个实例化的figure画板,然后用matplotlib.figure.add_subplot添加子图Axes/subplot并将其实例化。
    fig=plt.figure()  #创建画布
    ax1=fig.add_subplot(3,2,1)  #在画布上圈定一个画画范围,即你要在这张纸的那个地方画画。
    ax2=fig.add_subplot(3,2,2)
    ...
   ax6=fig.add_subplot(3,2,6)
    如果figure上面只有一张图,那么就只有一个ax,如果figure上有subplot,那么每一个subplot就是一个ax。

更详细的解释可以看下面的链接:
https://www.cnblogs.com/cgmcoding/p/13384221.html
https://mp.weixin.qq.com/s/2TagTmTCezDk7VGdy16utA



评分

参与人数 1金钱 +8 收起 理由
Swallow + 8 赞一个!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-4-2 23:13:53 | 显示全部楼层
figure 画布:顶层容器;“我是一张桌子,我就让你放一下”
axes 绘图区:整个Matplotlib“宇宙”的核心,是Matplotlib中最重要的类,也是使用最多的类;“我是一张纸,我承担所有”
subplot 子图:多图快速规划方式;“小朋友们,小朋友们,高考草稿纸要折一折”
密码修改失败请联系微信:mofangbao
回复 支持 3 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-4-3 02:45:01 | 显示全部楼层
①plt是快捷接口,有时指代figure实例有时指代axes实例。
②画布永远是第一位的,subplot(s)是种画布快速规划方式/手段/途径。
③plt能干的,fig和ax都能干。
④plt有“当前原则”,指代最新声明的figure或者ax实例。一般plt.xxx()和ax.set_xxx()等效。
详见《气py_Python气象数据处理与可视化》一书第4.3.3节
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

发表于 2022-4-3 02:06:32 | 显示全部楼层
千与千叶 发表于 2022-4-2 23:13
figure 画布:顶层容器;“我是一张桌子,我就让你放一下”
axes 绘图区:整个Matplotlib“宇宙”的核心, ...

这个楼层的文字有点眼熟
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-3 14:21:26 | 显示全部楼层
edwardli 发表于 2022-4-3 02:06
这个楼层的文字有点眼熟

哈哈哈,被发现了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-4 16:59:41 | 显示全部楼层
lz厉害,要是当初学的时候能看到你的经验总结,我也不会绕那么多弯路了qwq
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-6 10:25:07 | 显示全部楼层
本帖最后由 飘散的梦 于 2022-4-6 10:28 编辑
edwardli 发表于 2022-4-3 02:45
①plt是快捷接口,有时指代figure实例有时指代axes实例。
②画布永远是第一位的,subplot(s)是种画布快速规 ...

牛呀牛呀!!谢谢!!但是您说的这本书我在某宝上搜不到,可以分享下链接吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-6 23:43:26 | 显示全部楼层
本帖最后由 edwardli 于 2022-4-7 08:16 编辑
飘散的梦 发表于 2022-4-6 10:25
牛呀牛呀!!谢谢!!但是您说的这本书我在某宝上搜不到,可以分享下链接吗?

论坛里面就有。http://bbs.06climate.com/forum.php?mod=viewthread&tid=95890
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-4-8 08:44:02 | 显示全部楼层
牛啊牛啊,这个问题学会了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表