精华内容
下载资源
问答
  • import matplotlib.pyplot as plt from matplotlib.widgets importButton fig, ax = plt.subplots() #设置图形显示位置 plt.subplots_adjust(bottom=0.2) #实验数据 range_start, range_end, range_step =0,1,0.005 ...
  • matplotlib 绘制实时动态曲线图

    千次阅读 2020-10-13 22:30:22
    matplotlib 实时动态曲线

    在这里插入图片描述

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    %matplotlib qt5
    from IPython import display
    import math
    import time
    
     
    fig=plt.figure()
    ax=fig.add_subplot(1,1,1)
    
    ax.set_xlabel('Time')
    ax.set_ylabel('cos(t)')
    ax.set_title('')
    
    line = None
    plt.grid(True) #添加网格
    plt.ion()  #interactive mode on
    obsX = []
    obsY = []
    
    t0 = time.time()
    
    while True:
        t = time.time()-t0
        obsX.append(t)
        obsY.append(math.cos(2*math.pi*1*t))
    
        if line is None:
            line = ax.plot(obsX,obsY,'-g',marker='*')[0]
    
        line.set_xdata(obsX)
        line.set_ydata(obsY)
    
        ax.set_xlim([t-10,t+1])
        ax.set_ylim([-1,1])
    
        plt.pause(0.01)
    
    

    在这里插入图片描述

    展开全文
  • 实时画图 import matplotlib.pyplot as plt ax = [] # 定义一个 x 轴的空列表用来接收动态的数据 ay = [] # 定义一个 y 轴的空列表用来接收动态的数据 plt.ion() # 开启一个画图的窗口 for i in range(100): # 遍历...
  • 点击Start按钮,会开启定时器,每隔100ms根据队列来实时更新数据图像 点击PrintBtn按钮,会在后台打印三个队列中的数据,及大小,主要为了方便调试 点击End按钮,停止计时器,退出线程,回收资源 目录 pyqt5 准备...
  • Matplotlib绘制动态图像

    2020-12-22 12:57:07
    分类目录——Matplotlib 效果图 效果图1 效果图2 导入支持包 import numpy as np import matplotlib.pyplot as plt 生成测试数据 x = np.linspace(0, 6, 40) 打开交互模式 plt.ion() # 开启交互模型 动态绘图 ...
  • matplotlib 实时绘制多条曲线。

    文章目录

    效果图

    在这里插入图片描述
    在这里插入图片描述
    请添加图片描述

    纵坐标中的数据比较密集,不过不碍事,这个 GIF 主要想要说明程序运行效果。


    源代码

    程序应该很好理解,请忽略我设置的全局参数,这些不重要,程序逻辑很清楚。

    import random
    from math import pi, sin
    import threading
    import matplotlib.pyplot as plt
    import numpy as np
    import matplotlib.animation as animation
    from scipy import signal
    
    #用于显示正常中文标签
    plt.rcParams['font.sans-serif']=['SimHei']
    #用于正常显示负号
    plt.rcParams['axes.unicode_minus'] = False
    
    RANGE = 1000
    START_Y = 0
    END_Y = 1000
    FREQUENCY = 10
    KEY = 0
    LastDistance = -1
    Jitter_Threshold = 20
    onlyonce = 0
    
    fig = plt.figure()
    ax = plt.axes(xlim=(0, RANGE), ylim=(0, RANGE))
    # ax.legend(loc='best')
    ax.grid(axis='both')
    x_ticks = np.arange(0, RANGE, 5*FREQUENCY)
    y_ticks = np.arange(0, RANGE, 2*FREQUENCY)
    plt.xticks(x_ticks)
    plt.yticks(y_ticks)
    x_line = [i for i in range(0, RANGE)]
    y_line = [0.0 for i in range(0, RANGE)]
    x_sin_line = [i for i in range(0, RANGE)]
    y_sin_line = [0.0 for i in range(0, RANGE)]
    x_square_line = [i for i in range(0, RANGE)]
    y_square_line = [0.0 for i in range(0, RANGE)]
    plt.ylim(bottom=START_Y, top=END_Y)
    
    line, = plt.plot(x_line, y_line, linestyle='-', label='Real-time curve', linewidth=1, color='blue')
    line_sin, = plt.plot(x_sin_line, y_sin_line, linestyle='-', label='', linewidth=1, color='red')
    line_square, = plt.plot(x_square_line, y_square_line, linestyle='-', label='', linewidth=1, color='green')
    text_ani = plt.text(900, 750, '', ha='center', va= 'bottom', fontsize=20)
    
    sinx_g = None # data_from_sinx(A=1, w=1, f=0, h=0, step=1000) generator
    square_wave_g = None
    
    def draw():
        def update(c):
            x_line = [i for i in range(0, RANGE)]
            # 绘制随机数曲线
            distance = data_from_random()
            y_line.pop(-1)
            y_line.insert(0, distance)
            line.set_data(x_line, y_line)
    
            # 绘制sin曲线,需要注意return
            x_sin_line = [i for i in range(0, RANGE)]
            y_sin_line.pop(-1)
            y_sin_line.insert(0, sinx_g.__next__()[1])
            line_sin.set_data(x_sin_line, y_sin_line)
    
            # 绘制方波曲线,需要注意return
            x_square_line = [i for i in range(0, RANGE)]
            y_square_line.pop(-1)
            y_square_line.insert(0, square_wave_g.__next__()[1])
            line_square.set_data(x_square_line, y_square_line)
    
            # 显示当前数值
            text_ani.set_text("d= %.3f" % distance)
    
            return line, line_sin, line_square, text_ani # 将需要动态变化的内容return即可
        anim = animation.FuncAnimation(fig=fig, func=update, interval=FREQUENCY, blit=True)
       
        anim.save("text.gif", writer='pillow')
        plt.show()
    
    def data_from_square_wave(A=100, hz=20, h=0, step=1000):
        """
        A: 振幅
        hz:频率
        h:位移高度
        """
        t = 0
        y = 0
        while True:
            y = signal.square(2 * np.pi * hz * t)
            yield t, A*y + h
            t += 1/step
    
    def data_from_sinx(A=1, w=1, f=0, h=0, n=0, step=1000):
        """
        @param A: 振幅
        @param w: 频率 弧度制
        @param f: 相位 弧度制
        y = Asin(wx+f)
        """
        x = -2*pi
        while True:
            x += 1/step
            y = pow(A*sin(w*x + f) + h, n)
            yield x, y
    
    
    def data_from_random():
        """
        返回[0, 500]间的随机整数
        """
        return random.randint(0, 500)
    
    if __name__ == "__main__":
        sinx_g = data_from_sinx(A=50, w=4*pi, f=0, h=(START_Y+END_Y)/2+START_Y, n=1, step=1000)
        square_wave_g = data_from_square_wave(A=100, hz=20, h=(START_Y+END_Y)/2+START_Y, step=1000)
        threading.Thread(target=draw()).start()
    
    展开全文
  • 动态散点图 import matplotlib.pyplot as plt import numpy as np plt.ion() plt.figure(figsize = (4,4)) # 画单位圆 theta = np.arange(0, 2.1*np.pi, 2*np.pi/100) plt.plot(np.cos(theta), np.sin(theta)) plt...
    1. 动态散点图

      import matplotlib.pyplot as plt
      import numpy as np
      
      plt.ion()
      plt.figure(figsize = (4,4))
      
      # 画单位圆
      theta = np.arange(0, 2.1*np.pi, 2*np.pi/100)
      plt.plot(np.cos(theta), np.sin(theta))
      plt.xlim([-1,1])
      plt.ylim([-1,1])
      
      # 模拟的随机点数
      n = 100
      a = 2 * np.random.rand(n, 2) - 1
      for i in range(n):
      	color = 'g'
      	if (a[i][0] ** 2 + a[i][1] ** 2 ) < 1:
      		color = 'r'
      	plt.scatter(a[i][0], a[i][1], c=color, marker='^')
          plt.pause(0.1)
      
    2. 动态折线图

      ax = []
      ay = []
      plt.ion()
      for i in range(10):
      	ax.append(i)
      	ay.append(i**3 + 3*i + 1)
      	plt.plot(ax, ay, 'ro--')
      	plt.pause(0.1)
      
    • 注:(1)代码在Jupyter中是一张一张的 figure 出现,但在 IDLE 或 VScode 中编译会是动态效果。(2)但代码在VScode中会闪退,这是可以在 scatterplot后面添加 plt.ioff(),然后在最后循环完后加上 plt.show(),结果就不会再闪退。
    展开全文
  • 最容易想到的是像opencv那样直接循环使用imshow()形成动态画面,但是由于matplotlib中的显示模式是阻塞模式,在plt.show()之后程序就会暂停在那,打开一个窗口以后必须关掉才能继续执行,这样用matplotlib动态图就...
  • 利用matplotlib绘制多个实时刷新的动态图表

    万次阅读 多人点赞 2019-02-26 16:03:32
    Python中matplotlib实时画图  https://blog.csdn.net/zhanghao3389/article/details/82685072 Python中的plt.rcParams[]使用  http://www.cnblogs.com/pacino12134/p/9776882.html  pyplot使用rc配置文件来自定义...

    参考博客
    Python中matplotlib实时画图
      https://blog.csdn.net/zhanghao3389/article/details/82685072
    Python中的plt.rcParams[]使用
      http://www.cnblogs.com/pacino12134/p/9776882.html
      pyplot使用rc配置文件来自定义图形的各种默认属性,称之为rc配置或rc参数。
    matplotlib 画动态图以及plt.ion()和plt.ioff()的使用
      https://blog.csdn.net/zbrwhut/article/details/80625702
    用matplotlib设置标题、轴标签、刻度标签以及添加图例
      https://blog.csdn.net/weixin_41789633/article/details/79826935
    内容
      简言之,通过进入matplotlib的交互模式实时绘图。
      若只利用plt.show()绘图时,程序会停止执行之后的程序,所以通过plt.ion()开启画图窗口进入交互模式,利用程序plt.plot()实时绘图,绘制完成后,再利用plt.ioff()退出交互模式,并使用plt.show()显示最后的图片数据,若最后不加入plt.show()会闪退。
    程序参考

    import matplotlib.pyplot as plt
    import numpy as np
    
    ax=[]   #保存图1数据
    ay=[]
    bx=[]   #保存图2数据
    by=[]
    num=0   #计数
    plt.ion()    # 开启一个画图的窗口进入交互模式,用于实时更新数据
    # plt.rcParams['savefig.dpi'] = 200 #图片像素
    # plt.rcParams['figure.dpi'] = 200 #分辨率
    plt.rcParams['figure.figsize'] = (10, 10)        # 图像显示大小
    plt.rcParams['font.sans-serif']=['SimHei']   #防止中文标签乱码,还有通过导入字体文件的方法
    plt.rcParams['axes.unicode_minus'] = False
    plt.rcParams['lines.linewidth'] = 0.5   #设置曲线线条宽度
    while num<100:
        plt.clf()    #清除刷新前的图表,防止数据量过大消耗内存
        plt.suptitle("总标题",fontsize=30)             #添加总标题,并设置文字大小
        g1=np.random.random()  #生成随机数画图
    	#图表1
        ax.append(num)      #追加x坐标值
        ay.append(g1)       #追加y坐标值
        agraphic=plt.subplot(2,1,1)
        agraphic.set_title('子图表标题1')      #添加子标题
        agraphic.set_xlabel('x轴',fontsize=10)   #添加轴标签
        agraphic.set_ylabel('y轴', fontsize=20)
        plt.plot(ax,ay,'g-')                #等于agraghic.plot(ax,ay,'g-')
    	#图表2
        bx.append(num)
        by.append(g1)
        bgraghic=plt.subplot(2, 1, 2)
        bgraghic.set_title('子图表标题2')
        bgraghic.plot(bx,by,'r^')
    
        plt.pause(0.4)     #设置暂停时间,太快图表无法正常显示
        if num == 15:
            plt.savefig('picture.png', dpi=300)  # 设置保存图片的分辨率
            #break
        num=num+1
    
    plt.ioff()       # 关闭画图的窗口,即关闭交互模式
    plt.show()       # 显示图片,防止闪退
    

    程序结果
    程序结果动态图:
    实时曲线动态图
    开始注意排版了。。。很多用法都不会呀,ヾ(◍°∇°◍)ノ゙

    展开全文
  • import matplotlib.animation as ani import matplotlib.pyplot as plt import numpy as np import pandas as pd def load_data(): """ 获取数据 """ url = "./time_series_covid19_deaths_global.csv" df_all...
  • 最近项目有个需求,将后台实时生成的数据,用曲线可视化表达出来,并且动态更新数据。查找相关资料,matplotlib可以满足该需求。 一:目标 生成的数据是存在csv文件里,程序要不断的去读取csv文件里的数据,以曲线...
  • 补充知识:jupyter notebook matplotlib绘制动态图并显示在notebook中 有些时候matplotlib 的绘图没法显示在notebook中,或者显示不了。这与backend有关。 首先启动你的notebook,输入 %pylab 查看你的matplotlib...
  • matplotlib动态三维图

    2020-12-17 11:37:01
    从txt文本中读取数据并画动态三维点图 程序中实现动态三维图绘制,添加图标题,坐标轴标题,坐标轴数值范围,两种绘图模式,一种动态画图(所有点均保留),另一种每次仅显示一个点。 三维坐标轴设置区间,需要通过...
  • Python使用matplotlib动态

    万次阅读 多人点赞 2018-06-11 14:00:22
    机器学习需要使用python实现相应的算法,因此学习了Matplotlib中的画图。 更多内容访问omegaxyz.com 当然为了能显示机器学习中每次迭代的效果与收敛速度,需要画出动态图形。 下面给出两个例子,分别可以画出动态...
  • 【python】matplotlib动态显示详解 1.matplotlib动态绘图 python在绘图的时候,需要开启 interactive mode。核心代码如下: plt.ion(); #开启interactive mode 成功的关键函数 fig = plt.figure(1); for i in ...
  • Matplotlib绘制动态实时曲线的方法改进

    万次阅读 多人点赞 2018-08-03 13:23:44
    本篇博客搬运自个人简书链接戳我,欢迎大家关注。 - 很多时候,我们需要实时的绘制曲线,如实时的绘制串口接收到的数据。最先想到的解决策略是类似...通过网上现有的资料 基于Python实现matplotlib动态更新图片(...
  • 现在有个项目需要实时显示温度,可以直接用pyqtgraph实现,但是界面和曲线的调整实在不会,用了一段时间后放弃了。关于pyqtgraph实时绘图的代码和效果图如下。 import time import temp_calcu_3_onestep import ...
  • Python中matplotlib实时画图

    万次阅读 多人点赞 2018-09-13 11:16:14
    github博客传送门 ...实时画图 import matplotlib.pyplot as plt ax = [] # 定义一个 x 轴的空列表用来接收动态的数据 ay = [] # 定义一个 y 轴的空列表用来接收动态的数据 plt.ion() # 开启一个画图的...
  • 主要介绍了使用matplotlib动态刷新指定曲线实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 【Python可视化】matplotlib动态曲线

    千次阅读 2021-01-05 20:35:21
    matplotlib是python里最popular的画图工具,最近发现它可以用来画动态图。可以看看AI模型训练时候的loss曲线,accuracy变化等等。客观上,比tensorboard更简洁。 代码还是很简单滴: import matplotlib.pyplot as...
  • 再加上了滚动条与暂停功能。代码中还包含了一些小的功能,例如可以对每个数值进行设置y-value。但是我综合考虑了最终的效果,最后都注释掉了...图像会根据数据实时进行更新,也就是数据跟图像都是实时刷新的。表格...
  • 主要介绍了python之matplotlib学习绘制动态更新图实例代码,文中涉及具体实现代码,演示效果及运行时出现的问题分析等相关内容,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下
  • 实时更新数据,可重绘 代码 import matplotlib.pyplot as plt import matplotlib.animation import numpy as np np.random.seed(19680801) fig, ax = plt.subplots() x, y, s, c = [],[],[],[] sc = ax.scatter(x...
  • 3、用wxpython做界面,融合matplotlib实时显示波形。 4、用pyinstaller打包成一个单独的exe文件。 开发环境 win7、python3.8 输出结果 运行目录 Root -- Listener.exe # 这个是pyinstaller输出文件 -- audio # ...
  • python学习:使用Matplotlib实时动态折线图

    万次阅读 多人点赞 2019-04-26 18:01:37
    python学习:使用Matplotlib实时动态折线图 有时,为了方便看数据的变化情况,需要画一个动态图来看整体的变化情况。主要就是用Matplotlib库。 参考博客链接:...
  • 一、pyqt5的UI中嵌入matplotlib的方法 1、导入模块 导入模块比较简单,首先声明使用pyqt5,通过FigureCanvasQTAgg创建画布,可以将画布的图像显示到UI,相当于pyqt5的一个控件,后面的绘图就建立在这个画布上,...
  • 编写程序,绘制3D及动态图。 实验目的 熟练安装matplotlib、numpy及其依赖的扩展库; 熟练使用列表解决实际问题。 了解numpy中的常用函数。 了解matplotlib绘图方法。 了解matplotlib中常用组件的用法。 完成情况...
  • 1 深度学习训练过程中实时动态显示loss和acc曲线 可参考代码如下: # -*- coding: utf-8 -*- import matplotlib.pyplot as plt if __name__ == '__main__': train_loss = 5 val_loss = 5 train_acc = 0.0 val_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,533
精华内容 6,213
关键字:

matplotlib实时动态