zoukankan      html  css  js  c++  java
  • python 画图二(三维图,多轴图)

    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    plt.figure(1)#实例化作图变量
    plt.title("single variable")#图像标题
    plt.xlabel('x')
    plt.ylabel('y')
    plt.axis([0, 5,0, 10])#x轴范围是0-5,y轴范围是0-10
    plt.grid(True)# 是否网格化
    xx = np.linspace(0, 5, 10)#在0-5之间产生10个数据
    plt.plot(xx, 2 * xx, 'g-')
    plt.show()
    
    plt.figure(2)#实例化作图变量
    plt.title("single variable")#图像标题
    plt.xlabel('x')
    plt.ylabel('y')
    plt.axis([-12, 12,-1, 1])#x轴范围是-12-12,y轴范围是-1-1
    plt.grid(True)# 是否网格化
    xx = np.linspace(-12, 12, 100)#在-12-12之间产生100个数据
    plt.plot(xx, np.sin(xx), 'g-', label="$sin(x)$")
    plt.plot(xx, np.cos(xx), 'r--', label="$cos(x)$")
    plt.legend()
    plt.show()

    #绘制多轴图
    def draw(plt):
        plt.axis([-12, 12,-1, 1])#x轴范围是-12-12,y轴范围是-1-1
        plt.grid(True)# 是否网格化
        xx = np.linspace(-12, 12, 100)#在-12-12之间产生100个数据
        plt.plot(xx, np.sin(xx), 'g-', label="$sin(x)$")
        plt.plot(xx, np.cos(xx), 'r--', label="$cos(x)$")
        plt.legend()
    
    plt.figure(3)
    plt1 = plt.subplot(2,2,1)#两行两列中第一个
    draw(plt1)
    plt2 = plt.subplot(2,2,2)#两行两列中第2个
    draw(plt2)
    plt3 = plt.subplot(2,2,3)#两行两列中第3个
    draw(plt3)
    plt4 = plt.subplot(2,2,4)#两行两列中第4个
    draw(plt4)

    from mpl_toolkits.mplot3d import Axes3D
    
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1, projection='3d')
    theta = np.linspace(-4 * np.pi, 4 * np.pi, 500)
    z = np.linspace(0,2,500)
    r =z
    x = r * np.sin(theta)
    y = r * np.cos(theta)
    ax.plot(x, y, z, label='curve')
    ax.legend()
    plt.show()
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1, projection='3d')
    xx = np.linspace(0, 5, 10)
    yy = np.linspace(0, 5, 10)
    zz1 = xx
    zz2 = 2 * xx;
    zz3 = 3 * xx
    ax.scatter(xx, yy, zz1, c = 'red', marker='o')
    ax.scatter(xx, yy, zz2, c = 'green', marker='^')
    ax.scatter(xx, yy, zz3, c = 'black', marker='*')
    ax.legend()
    plt.show()
    
    from matplotlib import cm
    fig = plt.figure()
    ax = fig.gca( projection='3d')
    X = np.arange(-5,5,0.25)
    Y = np.arange(-5,5,0.25)
    X, Y = np.meshgrid(X, Y)
    Z = X ** 2 + Y ** 2
    ax.plot_surface(X, Y, Z, rstride=1,cstride =1, cmap =cm.coolwarm,
                   linewidth = 0,antialiased = False)
    plt.show()

     

  • 相关阅读:
    几个工具类
    C#学习-程序集和反射
    Unity学习-鼠标的常用操作(八)
    Unity学习-碰撞检测(七)
    Unity学习-摄像机的使用(六)
    Unity学习-地形的设置(五)
    Unity学习-预制(四)
    Unity学习-元素类型(三)
    Unity学习-软件的基本操作(二)
    Unity学习-工具准备(一)
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/6715646.html
Copyright © 2011-2022 走看看