码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • matplotlib show, ion, ioff, clf, pause的作用


    matplotlib show, ion, ioff, clf, pause的作用

    • 前言
    • plt.ion(), plt.ioff()
    • plt.clf()
    • plt.pause()
    • 例1:不阻塞的画图
    • 例2:画动态图

    前言

    matplotlib画图时经常涉及ion, ioff, pause, show这几个函数的作用,这里记录一下。

    plt.ion(), plt.ioff()

    在python中,matplotlib默认使用阻塞模式(block),plt.figure()产生的图会保存在内存里,只有使用plt.show()后才会绘制出来,并且会阻塞plt.show()后的代码的运行,因此适合画静态图。

    而matplotlib的交互模式则是使用plt.plot(), plt.figure()等函数时就会把图画出来并显示,并且不阻塞后续代码的运行,因此适用于画动态图。(Ipython的matplotlib默认是交互模式的)

    plt.ion(), plt.ioff()分别用于启用交互模式,关闭交互模式。需要说明的是,即使使用plt.ion()进入交互模式,直接显示图像会是纯黑并一闪而过的,需要使用plt.show()或者下面说的plt.pause()来进行输出。

    plt.clf()

    用于清除之前画的图像。

    plt.pause()

    matplotlib中用于暂停运行一段时间的函数,同时它能将内存中的图像显示出来,类似于plt.show()的效果。plt.pause()结束后,显示的图像将自动关闭。程序中有多个plt.pause()时,显示的图像将在最后一个plt.pause()结束后关闭。

    例1:不阻塞的画图

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(1,10,1)
    y = x
    z = x*2
    
    plt.ion()
    
    plt.figure()
    plt.plot(x,y)
    plt.pause(1)
    plt.figure()   
    plt.plot(x,z)
    plt.pause(1)
    
    plt.ioff()     
    plt.show()   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    例2:画动态图

    from matplotlib import pyplot as plt
    import numpy as np
    import time
    
    x = [i for i in range(10)]
    y = [i*2 for i in range(10)]
    
    plt.ion()
    plt.figure()
    
    for i in range(10):
    	plt.scatter(x[i], y[i]) 
    	plt.pause(0.1)
    plt.ioff() 
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    上面的两个程序都使用了plt.show()结尾,因为如果不使用该函数,程序结束时将直接关闭图像。

  • 相关阅读:
    Thrift -- 跨语言RPC 框架
    北大数学天才“韦神”上热搜,随手帮6个博士解决困扰4个月的难题
    查找算法之二分查找
    行人重识别reid
    element组件选择器的下拉框样式问题
    Netty服务端启动的整体流程-基于源码4.1.96Final分析
    取代 C++,Google 强势开源 Carbon语言
    AVL平衡二叉搜索树
    分类预测 | MATLAB实现CNN卷积神经网络数据分类预测
    webpack优化系列四:vue打包后生成的chunk-vendors文件过大,利用SplitChunks插件,分离chunk
  • 原文地址:https://blog.csdn.net/qq_41035283/article/details/127824953
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号