精华内容
下载资源
问答
  • python 动态绘图

    2020-06-05 19:52:06
    import numpy as np import matplotlib.pyplot as plt from scipy.optimize import least_squares plt.ion(); # 开启interactive mode 成功的关键函数 fig = plt.figure(1); def func1(p,x): ...

    记录一下动图绘制方法

    
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.optimize import least_squares
    
    plt.ion();  # 开启interactive mode 成功的关键函数
    fig = plt.figure(1);
    
    
    def func1(p,x):
        #print(p)
        return p[0]+p[1]*x+p[1]*x*x
    
    
    def func(p,x):
        #print(p)
        y = func1(p,x)
        plt.cla()
        plt.scatter(x,y)
        plt.ylim(-1,80)
        plt.pause(0.2)
        #print(y)
    
        return p[0]+p[1]*x+p[1]*x*x
    
    def error(p,x,y):
        return func(p,x)-y
    
    p = [1,1,1]
    x = np.arange(10)
    y = [0,1,5,2,6,7,5,9,10,2]
    
    
    para = least_squares(error,  # 误差函数
                            p,  # 初始参数
                            args=(x, y)  # 实验值,真实值
                            #bounds=(pl, pr)
                            )  # 边界参数
    
    
    print(para)
    
    plt.ioff()
    plt.show()
    
    展开全文
  • Python动态图

    千次阅读 2018-07-07 14:27:18
    来自:https://www.cnblogs.com/DHUtoBUAA/p/6619099.htmlmatplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用...

    来自:

    https://www.cnblogs.com/DHUtoBUAA/p/6619099.html

    matplotlib python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。其中,matplotlibpyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表,它的文档相当完备,并且 Gallery页面中有上百幅缩略图,打开之后都有源程序matplotlib官方地址:http://matplotlib.org/

      在调研matplotlib动态绘制曲线方法中,和matlab相似有animation方法和交互式绘图,但是animation方法灵活性不高,不太适合路径的实时动态显示,本文最后采用交互式绘图模(interactive mode)。具体参见http://matplotlib.org/users/shell.html

    The interactive property of the pyplot interface controls whether a figure canvas is drawn on every pyplot command. If interactive is False, then the figure state is updated on every plot command, but will only be drawn on explicit calls to draw(). When interactive is True, then every pyplot command triggers a draw.

      当绘图语句中加入pl.ion()时,表示打开了交互模式。此时python解释器解释完所有命令后,给你出张图,但不会结束会话,而是等着你跟他交流交流。如果你继续往代码中加入语句,run之后,你会实时看到图形的改变。当绘图语句中加入pl.ioff()时或不添加pl.ion()时,表示打关了交互模式。此时要在代码末尾加入pl.show()才能显示图片。python解释器解释完所有命令后,给你出张图,同时结束会话。如果你继续往代码中加入语句,再不会起作用,除非你关闭当前图片,重新run

      采用交互式绘图模式后,可以方便地绘出障碍物的运动轨迹和当前位置,深切感觉matplotlibmatlab很类似,基本matlab的功能都可以在matplotlib中找到,所以matlab中的代码也可以很快移植到python中!

    -------------------------------------源程序1-----------------------------------------

    # -*- coding: utf-8 -*-"""

    Created on Sat Mar 25 23:28:29 2017

     

    @author: wyl"""

    import matplotlib.pyplot as pltfrom matplotlib.patches import Circleimport numpy as npimport math

        

    plt.close()  #clf() # 清图  cla() # 清坐标轴 close() # 关窗口

    fig=plt.figure()

    ax=fig.add_subplot(1,1,1)

    ax.axis("equal") #设置图像显示的时候XY轴比例

    plt.grid(True) #添加网格

    plt.ion()  #interactive mode on

    IniObsX=0000

    IniObsY=4000

    IniObsAngle=135

    IniObsSpeed=10*math.sqrt(2)   #/print('开始仿真')try:

        for t in range(180):

            #障碍物船只轨迹

            obsX=IniObsX+IniObsSpeed*math.sin(IniObsAngle/180*math.pi)*t

            obsY=IniObsY+IniObsSpeed*math.cos(IniObsAngle/180*math.pi)*t

            ax.scatter(obsX,obsY,c='b',marker='.')  #散点图

            #ax.lines.pop(1)  删除轨迹

            #下面的图,两船的距离

            plt.pause(0.001)except Exception as err:

        print(err)

    -------------------------------------源程序2,实时显示盈亏-----------------------------------------

     

    #coding=gbk

    '''

    Created on Fri July 6 2018

    @author: lyq

    '''

    import http.client

    from threading import Timer

    import time

    import json

    import sys

    import chardet

    import urllib.request

    from html.parser import HTMLParser

    import datetime

    import pandas as pd

     

    from matplotlib.ticker import MultipleLocator, FormatStrFormatter

     

    import matplotlib.pyplot as plt

    from matplotlib.patches import Circle

    import numpy as np

    import math

        

    plt.close()  #clf() # 清图  cla() # 清坐标轴 close() # 关窗口

    fig=plt.figure()

    ax=fig.add_subplot(1,1,1)

    ax.axis("equal") #设置图像显示的时候XY轴比例

    plt.grid(True) #添加网格

    plt.ion()  #interactive mode on

    IniObsX=0000

    IniObsY=4000

    IniObsAngle=135

    IniObsSpeed=10*math.sqrt(2)   #/

    print('开始仿真')

    try:

    for t in range(180):

    #取当前时间

    now_time = datetime.datetime.now()

    time1 = now_time.strftime('%H:%M:%S')

    obsX=time1

    r = urllib.request.urlopen("http://hq.sinajs.cn/list=s_sz000063") #2422

    aa = r.read()

    a=aa.decode('GB2312')

    #print(a)

    denghao = '='

    nPos = a.index(denghao)

    sNo = a[nPos-6:nPos]

    print('code:'+sNo)

    astr = a[nPos+1:].split(',')

    #print (astr[0])

    print (astr[1])

    print ( "%.2f" % (18700*(eval(astr[1])-13.008)) )

    #obsY=eval(astr[1]) #价格图

    obsY=("%.2f" % (18700*(eval(astr[1])-13.008)))

    plt.xticks(rotation=25)

    if(t<=20 ) :

    xmajorLocator   = MultipleLocator(1) #x主刻度标签设置为1的倍数

    elif(t>20 and t<100 ) :

    xmajorLocator   = MultipleLocator(5) #x主刻度标签设置为5的倍数

    else:

    xmajorLocator   = MultipleLocator(20) #x主刻度标签设置为20的倍数

    ax.xaxis.set_major_locator(xmajorLocator)

    #ax.xaxis.set_major_formatter(xmajorFormatter)

     

    ax.scatter(obsX,obsY,c='b',marker='.')  #散点图

    #下面的图,price

    plt.pause(1)

     

    except Exception as err:

    print(err)

     

     

    展开全文
  • Python动态绘图

    2021-05-10 16:10:12
    Python的绘图方式包括“控制台绘图”和“弹出窗绘图”,动态绘图只能在弹出窗中进行,因此在绘图前必须进行设置。 案例1: import numpy as np import matplotlib.pyplot as plt #%matplotlib auto #Jupyter ...

    Python的绘图方式包括“控制台绘图”和“弹出窗绘图”,动态绘图只能在弹出窗中进行,因此在绘图前必须进行设置。

    案例1:

    import numpy as np
    import matplotlib.pyplot as plt
    
    #%matplotlib auto #Jupyter notebook的弹出窗绘图语句,在Pycharm和Spyder中国必须删除该句
    
    for i in range(10):
    #     plt.figure() #绘制一个figure,标号基于前一个figure以自然数命名
    #     plt.figure(i) #以指定数据作为标号绘制一个figure
        plt.plot(np.random.randn(10,10)) #在当前figure中绘图,如果没有figure则自己新建一个再绘图
        plt.pause(0.2) #暂停时间
        plt.cla() #将当前figure中绘图区的内容清除
    #     plt.close() #将当前figure关闭
    

    案例2:指定figure画图

    import matplotlib.pyplot as plt
    
    #%matplotlib auto #Jupyter notebook的弹出窗绘图语句,在Pycharm和Spyder中国必须删除该句
    
    fig,ax=plt.subplots()
    y1=[]
    for i in range(50):
        y1.append(i)
        ax.cla()
        ax.bar(y1,label='test',height=y1,width=0.3)
        ax.legend()
        plt.pause(0.3)
    

    注意:要实现动态绘图,plt.pause()是必须要的,否则图像不会展示(因为显示图像需要的时间比较长)!

    python保存gif图像:https://blog.csdn.net/briblue/article/details/84940997

    展开全文
  • 原标题:python之最炫抖音动态图 我们使用2013 年-2019 年比特币(BTC) 的价格数据绘制面积图动画,其HTML 交互效果页面如图11-4-6 所示。该数据集包括四列数据:年份(year) 、城市名称(name) 及所在的洲(group) 、...

    原标题:python之最炫抖音动态图

    8e7cd229b59945de92bbb28d78df08f9.jpeg

    我们使用2013 年-2019 年比特币(BTC) 的价格数据绘制面积图动画,其HTML 交互效果页面如图11-4-6 所示。该数据集包括四列数据:年份(year) 、城市名称(name) 及所在的洲(group) 、人口密度数值(value) ,转置的数据集如图11-4-7 所示,包括2013 年04 月28 日起每天的开盘、最高、最低和收盘的价格。

    点击边框调出视频工具条

    图11-4-6. 动态面积图的HTML 交互页面效果图

    dff2c32cf3ff4f5b9752645a6e766b1d.jpeg

    图11-4-7. 2013 年-2019 年比特币(BTC) 的价格数据集

    具体实现代码

    我们先导入数据集'BTC_price_history.csv',然后将date列转换成日期型数据。我们选择一天的最高和最低价的均值作为这一天比特币的价格Price。其具体代码如下:

    我们设置图表每次展示Span_Date=180天的比特币价格数据,所以得到180天的数据集df_temp后,如果使用plt.fill_between函数可以实现红色填充的面积图,如图11-4-8(a)所示;如果使用plt.bar函数可以实现Spectral_r颜色映射的面积图,如图11-4-8(b)所示。图11-4-8的代码具体如下所示。

    2b28b50f249845938241251837ddc789.png

    (a) 单色填充.

    c40b54d4d76a4c81bf997591bf3e1cb4.png

    (b) 渐变色填充.

    图11-4-8. 静态面积图.

    我们将上面的静态面积图代码整合成函数。当开始的日期天数据绘制面积图;当开始的日期≥时,就选择截止到当前日期的天数据绘制面积图。使用函数绘制的不同日期的面积图如图所示。

    4cc465149aca4d82a394dd233f049315.png

    (a)Num_Date=60.

    f150c8a441de403aba7a94b638c11d61.png

    (b)Num_Date=150.

    图11-4-9. 不同日期Num_Date 的面积图.

    使用matplotlib 包的animation.FuncAnimation 函数,调用draw_areachart(Num_Date) 函数,其中输入的参数Num_Date = np.arange(0,df.shape[0],1) ,最后使用Ipython 包的HTML 函数将动画转换成HTML 页面的形式演示,其动画不同日期下的演示效果如图11-4-10 所示。

    其中,函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下(1) fig表示绘制动图的画布名称(figure);(2)func为自定义绘图函数,如draw_barchart函数;(3)frames为动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数draw_barchart (year)的形参“year”;(4) init_func为自定义开始帧,即初始化函数init,可省略;(5) interval表示更新频率,计量单位为ms;(6) blit表示选择更新所有点,还是仅更新产生变化的点,应选择为True,但mac用户应选择False,否则无法显示。

    另外,也可以使用animator.save(" animation.gif’) 或者animator.save(" animation.mp4) 导出gif 或者mp4 格式的动画。但是如果要导出mp4 ,需要先安装已经安装ffmpeg 或者mencoder 。

    d94e8a2de3e14fb4a81d20a64fc9cf72.jpeg

    图11-4-10. 面积图动画不同时间下的演示效果

    ps:源代码与数据的Github下载地址:

    https://github.com/EasyChart/Beautiful-Visualization-with-python

    python数据可视化之美

    本文来源即将出版的新书《python数据可视化之美》之动态图表的绘制,除此之外,书中还介绍了动态条形图和动态三维柱形地图的绘制。

    matplotlib 包和plotnine 包都可以实现动态数据的可视化演示。其中,在matplotlib 包中,函数FuncAnimation(fig,func,frames,init_func,interval,blit) 是绘制动图的主要函数,其参数如下:(1) fig 为绘制动图的画布名称;(2) func 为自定义动画函数update ,比如11-4-1 的draw_barchart(year) 和11-4-2 的draw_areachart(Num_Date) ;(3) frames 为动画长度,一次循环包含的帧数,在函数运行时,其值会传递给函数update(n) 的形参“n” ;(4) init_func 为自定义开始帧,即初始化函数,可省略;(5) interval 为更新频率,以ms 计算;(5) blit 为选择更新所有点,还是仅更新产生变化的点。应选择True ,但mac 用户请选择False ,否则无法显示。plotnine 包的PlotnineAnimation 函数也可以绘制动态图表,但是对于不断更新的数据绘制动态图表时,动态图表生成速度很慢。

    致谢与说明

    自从9月份出版《R语言数据可视化之美》,很多读者问我能不能出一本python版的数据可视化教程。写书真的呕心沥血,但是在撰写过程中能系统性地总结所学的知识,可以查漏补缺,也是受益匪浅。R语言这本书是2017年5月断断续续写了1年半多,到今年5月份才修改出版。后来又花了3个多月增加了三章图表内容

    所谓“大道相通”,不同软件的数据可视化原理都是相通的。python数据可视化这本书就是2018年对照着R语言那本书翻译而成。所以亲爱的读者请不必诧异于、我现在这么快就撰写完成《python数据可视化之美》。在这里,首先要感谢我的读者,感谢你们对我的支持与包容。也非常感谢我的大学好友金伟(现为职腾讯高级研究员)引导我入门python,也感谢香港理工大学的姚鹏鹏博士、清华大学的赵建树博士对我在学习python时的帮助。

    最后,我觉得我还应该感谢的就是我自己。蓦然回首,四年弹指一挥间,从大学毕业到香港做学术研究这几年,经历过很多次的失望,也差点就抑郁,感谢我自己有一颗积极阳光乐观的心,终于守得云开见月明,如我所愿能坚持做我自己喜欢的事情。

    小时候,读到课本里普希金说:“假如生活欺骗了你,不要悲伤,不要心急!忧郁的日子里需要镇静:相信吧,快乐的日子将会来临。”到现在才明白这确实是一条生活的潜规则。月有阴晴圆缺,人有悲欢离合。人不仅有趋利避害、喜甜厌苦的本能反应,还有趋欢避悲、求乐脱苦的本能调节。所以,悲伤的日子后面就是快乐的日子。

    亲爱的朋友,也希望你能快乐每一天!

    01d482ffd4254b07b0e0ff6ac9a8a11f.jpeg

    Github

    【书籍推荐】《R语言数据可视化之美》

    责任编辑:

    展开全文
  • 本篇文章给大家带来的内容是关于Python处理gif动态图的解析与合成操作的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。本文实例讲述了Python图像处理之gif动态图的解析与合成操作。分享给...
  • 本文实例讲述了Python图像处理之gif动态图的解析与合成操作。分享给大家供大家参考,具体如下:gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图。这里,就介绍下如何使用python来解析和生成gif图像...
  • 大家好,今天我们要讲的是如何使用Pyecharts制作动态排名变化图�制作这样的一个动态图使用到的是Pyecharts中的TimeLine(时间线轮播图),代码实现起来其实稍有难度,但我希望能通过讲解这样一张动态图的制作过程,来...
  • python动态图的绘制和保存

    千次阅读 多人点赞 2019-12-16 11:12:23
    用matplotlib中的库可以实现动态图的绘制,下载imagemagick后可以将动态图保存为gif格式
  • Python动态绘图的方法(matplotlib,matplotlib.animation,pyechart,echart) 目录 方法一:matplotlib循环添加数据 1 方法二:matplotlib循环刷新-清除旧数据-添加新数据 1 方法三、利用第三方插件imagemagick...
  • PYTHON动态图实例&实践

    2020-03-08 23:58:30
    众所周知,世界上最早的程序员是女性哦,刚好有GITHUB一个超火的动态图项目:barrace(https://gist.githubusercontent.com/johnburnmurdoch/4199dbe55095c3e13de8d5b2e5e5307a/raw/),博主我就顺势发挥下,整出个...
  • 公众号后台回复“图书“,了解更多号主新书内容作者:Ryoko量子来源:凹凸数据朋友圈又看到 Python 广告推送了,什么“你还在用 Excel 加班啊”、“我一进去就看见 Python...
  • python动态图-python动态图

    千次阅读 2020-10-29 14:35:57
    广告关闭2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。...原来可视化不仅可用直方和箱形,还能做得如此动态好看甚至可交互。 对数据科学家来说,讲故事是一个至关重要的...
  • Python绘制动态图形

    2020-05-29 18:22:17
    Python绘制动态图形一、柱形二、气泡三、折线四、小提琴五、面积六、漏斗七、带状 日常生活中,我们经常需要对多年的数据进行分析。如果对每一年的数据都进行可视化,那么将需要我们重复的采用相同的...
  • python图片爬虫中,我们爬取的是静态网站。那么静态网站跟动态网站有什么区别呢?其中对于我们写爬虫来说,最大的区别就是用requests.get()获取到的信息,动态网站是不全的。要想从动态网站里获取到需要的信息,就...
  • Python制做动态图

    千次阅读 2020-04-12 08:44:19
    制作这样的一个动态图使用到的是Pyecharts中的TimeLine(时间线轮播图),代码实现起来其实稍有难度,但我希望能通过讲解这样一张动态图的制作过程,来让各位读者可以使用Pyecharts将任何一种图动起来,我们开始吧!...
  • python绘制动态图

    2019-09-16 17:13:23
    python绘制动态散点 from matplotlib import pyplot as plt import numpy as np import math fig=plt.figure() ax=fig.add_subplot(1,1,1) plt.ion() for i in range(10): x=i y = math.sin(x) ax.plot(x,y,m.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,515
精华内容 1,806
关键字:

python动态图

python 订阅