精华内容
下载资源
问答
  • import matplotlib.pyplot as plt import numpy as np POINTS = 10 x_list = [0] * POINTS sin_list = [0] * POINTS cos_list = [0] * POINTS indx = 0 while True: y = [] indx += 1 # 更新绘图数据 x_list =...

    只保存缓存的数据

    import matplotlib.pyplot as plt
    import numpy as np
    
    POINTS = 10
    x_list = [0] * POINTS
    sin_list = [0] * POINTS
    cos_list = [0] * POINTS
    indx = 0
    
    while True:
        y = []
        indx += 1
        # 更新绘图数据
        x_list = x_list[1:] + [indx]
        sin_list = sin_list[1:] + [np.sin((indx / 20) * np.pi)]
        cos_list = cos_list[1:] + [np.cos((indx / 20) * np.pi)]
        y.append([sin_list, 'sin_list'])
        y.append([cos_list, 'cos_list'])
        # 显示时间
        plt.pause(0.01)
        # 清除上一次显示
        plt.cla()
        for i in range(len(y)):
            plt.plot(x_list, y[i][0], label=y[i][1])
        plt.legend()

    保存原有数据

    import matplotlib.pyplot as plt
    import numpy as np
    
    POINTS = 10
    x_list = [0] * POINTS
    sin_list = [0] * POINTS
    cos_list = [0] * POINTS
    indx = 0
    
    while True:
        y = []
        indx += 1
        # 更新绘图数据
        x_list.append(indx)
        sin_list.append(np.sin((indx / 20) * np.pi))
        cos_list.append(np.cos((indx / 20) * np.pi))
        y.append([sin_list, 'sin_list'])
        y.append([cos_list, 'cos_list'])
        # 显示时间
        plt.pause(0.01)
        # 清除上一次显示
        plt.cla()
        for i in range(len(y)):
            plt.plot(x_list, y[i][0], label=y[i][1])
        plt.legend()

    展开全文
  • 函数只被其名称引用。就Python而言,使用不同的输入参数集并不能使它...在解决此问题的最简单方法是为函数指定不同的名称:import sympy as syimport numpy as npimport matplotlib.pyplot as pltx, z, w, a0, a1, ...

    函数只被其名称引用。就Python而言,使用不同的输入参数集并不能使它成为惟一的函数。因此,每次声明函数f时,都会覆盖以前的版本。因此,最后你只剩下f(w),这对你所有的绘图重复调用。在

    解决此问题的最简单方法是为函数指定不同的名称:import sympy as sy

    import numpy as np

    import matplotlib.pyplot as plt

    x, z, w, a0, a1, a2, a3, n, c, = sy.symbols('x z w a0 a1 a2 a3 n c ')

    def f(x):

    return 2.2268*(x)**(1/2)+2.6295*x-0.0217*(x)**2+5.7406*10**(-5)*(x)**3

    def g(z):

    return 2.2268*(z)**(1/2)+1.5821*z-8.2664*10**(-3)*(z)**2+1.3718*10**(-5)*(z)**3

    def h(w):

    return 2.2268*(w)**(1/2)+1.1139*w-4.2846*10**(-3)*(w)**2+5.1828*10**(-6)*(w)**3

    x = np.arange(0., 300, 0.01)

    y = np.arange(0., 300, 0.01)

    z = np.arange(0., 300, 0.01)

    w = np.arange(0., 300, 0.01)

    plt.plot(x, f(x), )

    plt.show()

    plt.plot(z, g(z), )

    plt.show()

    plt.plot(w, h(w), )

    plt.show()

    plt.plot(x, f(x), z, g(z), w, h(w), )

    plt.show()

    现在,这意味着可以在不同的函数中重复使用x作为输入,但是符号表示可能不是您想要的那样(假设这是一个简短的例子,因为这里没有实际使用符号)。在

    展开全文
  • 使用matplotlib在一张图上画多条曲线

    万次阅读 2020-03-21 21:59:50
    做数据分析,还有机器学习的收敛性,准确性分析时,往往需要将一些数据图形化,以曲线的形式显示出来,下面就介绍两种方式来实现这个小问题,一种是object-oriented面向对象的,另一种是基于plt的。 下面这个方式是...

    做数据分析,还有机器学习的收敛性,准确性分析时,往往需要将一些数据图形化,以曲线的形式显示出来,下面就介绍两种方式来实现这个小问题,一种是object-oriented面向对象的,另一种是基于plt的。

    下面这个方式是面向对象的方式:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0,2,100)
    fig,ax = plt.subplots()
    ax.plot(x,x,label='linear')
    ax.plot(x,x**2,label='quadratic')
    ax.plot(x,x**3,label='cubic')
    ax.set_xlabel('x label')
    ax.set_ylabel('y label')
    ax.set_title('simple plot')
    ax.legend()
    plt.show()
    
    将图形中的每个元素进行定义,然后组建成一个整体图像,是基于对象的。

    上面的代码产生的图形如下图所示:

     

     

    另一种是完全给予plt的代码,如下所示:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0,2,100)
    
    plt.plot(x,x,label='linear')
    plt.plot(x,x**2,label='quadratic')
    plt.plot(x,x**3,label='cubic')
    plt.xlabel('x label')
    plt.xlabel('y label')
    plt.title('simple plot')
    plt.legend()
    plt.show()
    

    两种方式产生的图是一样的。

    那么为什么要将上述两种代码分为面向对象和基于plt的呢,是由于matplotlib做出的图的每一个部分都可以看做一个独立的对象,比如坐标轴,坐标轴的刻度,坐标轴的名称,这个图的标题等等,下面的这个图可以很好的说明这个问题,因为已经将每一个部分分别标出来了。

    展开全文
  • import matplotlib.pyplot as plt import pandas as pd from matplotlib.pyplot import MultipleLocator plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=...
    1. 调用Python包
    import matplotlib.pyplot as plt
    import pandas as pd
    from matplotlib.pyplot import MultipleLocator
    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
    
    1. 造数-DataFrame
    df = pd.DataFrame([['2010','aa',200,20],['2011','aa',210,30],['2012','aa',230,70],['2013','aa',260,20],['2014','aa',270,80],['2015','aa',200,20],
                       ['2010','bb',250,25],['2011','bb',280,65],['2012','bb',290,35],['2013','bb',650,85],['2014','bb',350,95],['2015','bb',250,55],
                       ['2010','cc',300,30],['2011','cc',380,33],['2012','cc',340,70],['2013','cc',380,80],['2014','cc',390,90],['2015','cc',300,30],
                       ['2010','dd',400,40],['2011','dd',430,50],['2012','dd',420,80],['2013','dd',470,50],['2014','dd',420,70],['2015','dd',490,40],
                       ['2010','ee',550,55],['2011','ee',560,85],['2012','ee',590,55],['2013','ee',590,65],['2014','ee',550,85],['2015','ee',570,55],
                       ['2010','ff',600,60],['2011','ff',670,40],['2012','ff',660,70],['2013','ff',630,90],['2014','ff',680,80],['2015','ff',620,60]
                      ],columns=['报表日期','股票名称','市值','FCFF'])
    df['报表日期']=df['报表日期'].apply(int)
    print(df)
    

    在这里插入图片描述

    1. 不同指标全部画在一张图上
    fig, ax = plt.subplots()
    h,l = ax.get_legend_handles_labels()
    for i in df['股票名称'].unique():
        df[df['股票名称']==i].groupby('股票名称').plot('报表日期','市值',ax=ax,figsize=(16, 10),label='%s_市值'%i)
        df[df['股票名称']==i].groupby('股票名称').plot('报表日期','FCFF',ax=ax,figsize=(16, 10),label='%s_FCFF'%i,linestyle='-.')
    #     sub_data[sub_data['股票名称']==i].groupby('股票名称').plot('报表日期','DebtRatioWithoutR&D',ax=ax,figsize=(16, 10),label='%s_D/E'%i,linestyle='-')
        
    
    x_major_locator=MultipleLocator(1.0)
    y_major_locator=MultipleLocator(50)
    ax=plt.gca()
    ax.xaxis.set_major_locator(x_major_locator)
    ax.yaxis.set_major_locator(y_major_locator)
    plt.legend(fontsize=12)
    plt.axis([2010, 2015, 10, 700])
    plt.show()
    

    效果如下:
    在这里插入图片描述
    PS:如果图例挡住折线了,调整一下图片尺寸或横纵坐标的范围即可。

    1. 或者按股票名称分别画对应指标
    for i in df['股票名称'].unique():
        x_major_locator=MultipleLocator(1.0)
        y_major_locator=MultipleLocator(50)
        ax=plt.gca()
        ax.xaxis.set_major_locator(x_major_locator)
        ax.yaxis.set_major_locator(y_major_locator)
    #     plt.legend(fontsize=12)
        plt.axis([2010, 2015, 10, 700])
        df[df['股票名称']==i].groupby('股票名称').plot('报表日期',['市值','FCFF'],figsize=(6, 4),label=['%s_市值'%i,'%s_FCFF'%i])
    

    效果如下(按股票名称画出多张图):
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    转载请附出处,谢谢。

    展开全文
  • 对类似问题有一些先前的答案(例如https://stackoverflow.com/a/22081678/325565),但他们建议采用次优方法.大多数先前的答案建议在pcolormesh填充上绘制白色多边形....这是一个更的工作,但有一种方法可以更快地...
  • matplotlib多条曲线

    千次阅读 2017-08-23 09:52:01
    plot(self, *args, **kwargs) def plot(self,ax,ay,colour): ”’#最常用的绘图命令plot, ”’self.axes.grid()self.axes.plot(ax,ay,colour) ...plot(x1, y1, x2, y2, antialised=False) ##画多条曲线 plot
  • matplotlib.pyplot
  • 如果你需要同一条曲线根据不同部位选择不同的颜色来显示,那么就需要看一下这个例子。如下图: 这个图里,每条曲线根据曲线的导数来选择不同的颜色显示,相同导数,也就是说明相同的曲率部分就会是一样的颜色。 ...
  • Matplotlib——在一张图内绘制多条曲线

    千次阅读 多人点赞 2020-07-24 16:25:38
    Matplotlib.pyplot import matplotlib.pyplot as plt 2.绘制一张空白图 fig, ax = plt.subplots() plt.subplots()的作用是创建一个图或者一组子图返回值是Figure,axes.Axes。此处代码中 fig = Figure ax = axes....
  • matplotlib 实时绘制多条曲线
  • 不过稍为复杂一点的作图,都会需要多条曲线,比如水的沸腾就是在气压和温度的作用下,才能决定它的沸点。人的体重是否超重,也是在重量和身高的相互关系之下才能决定是否健康。因此,往往需要多条曲线在同一个坐标里...
  • matplotlib.pyplot绘制图像之同一图中多条曲线对比

    万次阅读 多人点赞 2018-11-07 16:41:45
    绘制sinx和cosx # -*- coding:utf-8 -*- ...import matplotlib.pyplot as plt x = np.linspace(0, 2 * (np.pi)) #numpy.linspace(开始,终值(含终值)),个数) y1 = np.sin(x) y2 = np.cos(x) #画图 plt.title('C...
  • matplotlib画图时,常常需要实现两类功能,一类是在一个坐标轴上画多条曲线,能够清楚地看到多条曲线的对比情况。另一种情况是在同一个窗口的不同子图上画图,多用于呈现不同内容的曲线,没有对比关系的曲线图。...
  • 时候需要在程序运行过程中,查看一些数据的动态变化,最容易想到的是像opencv那样直接循环使用imshow()形成动态画面,但是由于matplotlib中的显示模式是阻塞模式,在plt.show()之后程序就会暂停在那,打开一个...
  • 主要为大家详细介绍了python使用matplotlib模块绘制多条折线图、散点图的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • matplotlib 画图,实现曲线颜色控制 由于需要设置曲线的颜色和控制按钮的颜色一致。完成之后,自己学习记录如下 准备1 在Qtdesigner 中设置QSS 选择需要编辑的按键,右键-> 编辑样式表,如下所示。选择添加...
  • 在上一篇中,本人片面的认为问题解决了,后来认真一看曲线确实同步了,可是横坐标惨不忍睹,如下图所示: 认为是下面这设置横坐标label 位置的问题,实际上经过测试将这句位置上调整到ax2=axs.twinx() 之前,...
  • 由于此方法被封装,底层代码又很长,我就想干脆自己用matplotlib模拟一个。 具体思路其实很简单,就是将纵坐标的数据组织成一个numpy数组,每一行代表一根曲线对应的数据。之后,在每一行上加上一个偏移量,使...
  • matplotlib 绘制多个子图,多条曲线

    千次阅读 2020-02-12 17:53:46
    1、生成个视图(画板): 在matplotlib 中,一个figure即为一个画板,用plt.figure()创建一个新画板,如果只有一个画板的话这句可以省略。 #创建第一个视图(画板) plt.figure(1) #第一个画板的内容 #… #创建第...
  •  这里我利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图: 1.代码 # -*- coding: UTF-8 -*- import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt #...
  • pandas的Series和DataFrame结构的plot()方法可以自动调用matplotlib的功能进行绘图,在数据分析和处理时可以很方便地进行可视化。例如下面的代码: 代码运行结果如下图: Python学习...
  • 数据分析笔记–matplotlib(三)多条数据显示在同于坐标系中 假设大家在30岁的时候,根据自己的实际情况, 统计出来了你和你同桌各自从11岁到30岁每年 交的女(男)朋友的数量如列表a和b,请在一个 图中绘制出该数据的...
  • Matplotlib在一张画布上画个图的两种方法,plt.subplot,plt.subplots。 目录回顾plt.subplots()画法plt.subplot()画法保存 回顾 之前也用过plt.subplots()在一张图上画过个图,今天看到用plt.subplot()的画法想...
  • #开始绘图fig,ax1=plt.subplots()fig.set_size_inches(12,6)plt.set_cmap('RdBu')#multiplelineplotx=np.arange(featureValuedf.shape[1])#x坐标的范围lw=4#控制线条的粗细a,=ax1.plot(x,featureValuedf.loc['Bac...
  • 1、在一张图上画多条曲线 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3,3,50) #设置横轴的取值点 y1 = 2 * x + 1 #曲线1 y2 = x**2 #曲线2 plt.figure(num=3,figsize=(8,5)) plt....
  • 原博文2019-07-14 16:13 −在讲解绘制个子图之前先简单了解一下使用matplotlib绘制一个图,导入绘图所需库matplotlib并创建一个等间隔的列表x,将[0,2*pi]等分为50等份,绘制函数sin(x)。当没有给定x轴数值时,...
  • python-matplotlib 绘制函数曲线

    千次阅读 2021-10-07 10:24:41
    笔记一、先画线1.plt.plot() 函数1.1plt.plot(x, y, "格式控制字符串")1.2示例二、画个函数曲线1.Python math库常用函数2.np.arange() 函数三、图,坐标系,曲线1.同一张图,同一坐标系,画曲线2.同一张图,...
  • Matplotlib在python中绘制多曲线线图

    千次阅读 2020-11-26 00:20:09
    要使曲线平滑:import matplotlib.pyplot as pltimport numpy as npfrom scipy.interpolate import make_interp_spline, BSplinedef create_spline_from(x, y, resolution):new_x = np.linspace(x[0], x[-1], ...
  • matplotlib画PR曲线

    千次阅读 2019-01-03 23:35:57
    import matplotlib as plt 然后以VOC为例,画PR曲线: def _do_python_eval(self, output_dir='output'): #rootpath = os.path.join(self.root, 'VOC' + self._year) rootpath = '/data/Datasets/l...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,548
精华内容 4,219
关键字:

matplotlib多条曲线