美文网首页
numpy 和 matplotlib 相关笔记

numpy 和 matplotlib 相关笔记

作者: 老周_o_o | 来源:发表于2018-04-24 11:31 被阅读0次
    • 用numpy表示高阶的函数,并用matplotlib将函数对应的曲线画出来。可添加子图,可进行颜色填充,可3D,可等高图。
    import numpy as np
    import matplotlib.pyplot as plt
    func = np.poly1d(np.array([1, 2, 3, 4]))
    # print(func)  # 1 x^3 + 2 x^2 + 3 x + 4
    func1 = func.deriv(m=1)
    # print(func1)  # 3x^2 + 4x +3 对func求一阶导数
    func2 = func.deriv(m=2)
    # print(func2)  # 6x + 4  对func求二阶导数
    x = np.linspace(-10, 10, 30)  # 起点-10,终点10,共描点30个
    y = func(x)
    y1 = func1(x)
    y2 = func2(x)
    plt.plot(x, y, 'ro', x, y2, 'g--')  # 'ro'是红圆点,'g--'是绿色线条
    plt.xlabel('this is x')  # 这个是定义x,y坐标的名称
    plt.ylabel('this is y')
    plt.show()
    

    附: numpy.poly1d详细说明

    Figure_1.png
    '''添加子图'''
    plt.subplot(311)
    plt.plot(x, y, c='r', linestyle='-')
    plt.title('Polynomial')  # 多项式
    
    plt.subplot(312)
    plt.plot(x, y1, c='b', linestyle='-', marker='^')  # 蓝色连线三角形标点
    plt.title('first dervative')  # 一阶导数
    
    plt.subplot(313)
    plt.plot(x, y2, c='g', linestyle='', marker='o')  # 绿色不连线圆形标点
    plt.title('second derivative')  # 二阶导数
    plt.show()
    
    Figure_2.png
    '''颜色填充'''
    fig = plt.figure()
    # fig.fill_between(x, y, y1, facecolor='b')  # 'Figure' object has no attribute 'fill_between'
    
    ax = fig.add_subplot(211)
    ax.fill_between(x, y, y1, facecolor='b')  # 在两条曲线之间填充
    ax.grid(True)
    
    ax2 = fig.add_subplot(212)
    ax2.fill(x, y, facecolor='b', alpha=0.3)  # 在曲线和'两端点之间线段'之间填充
    ax2.fill(x, y1, facecolor='g', alpha=0.3)
    ax2.grid(True)
    plt.show()
    
    Figure_3.png
    '''三维绘图'''
    from mpl_toolkits.mplot3d import Axes3D
    
    u = np.linspace(-1, 1, 100)
    x, y = np.meshgrid(u, u)
    z = x ** 2 + y ** 2
    
    fig = plt.figure()
    ax = Axes3D(fig)
    # cmap = color_map
    ax.plot_surface(x, y, z, rstride=4, cstride=4, cmap='rainbow')
    plt.show()
    
    Figure_4.png
    '''三维等高线图'''
    u = np.linspace(-1, 1, 100)
    x, y = np.meshgrid(u, u)
    z = x**2+y**2
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.contourf(x, y, z)
    plt.show()
    
    Figure_5.png

    相关文章

      网友评论

          本文标题:numpy 和 matplotlib 相关笔记

          本文链接:https://www.haomeiwen.com/subject/dfndlftx.html