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()

     

  • 相关阅读:
    所谓的飞扬档案管理软件
    通过实例学习Virtools脚本语言VSL 解析字符串
    SQLite FAQ中文版
    通过实例学习Virtools脚本语言VSL 将物体排列于圆周上
    通过实例学习Virtools脚本语言VSL 解二次方程
    out 和 ref
    ASP.NET MVC深度接触:ASP.NET MVC请求生命周期
    ICSharpCode.SharpZipLib 压缩
    aspnet_regiis.exe 详解
    ASP.NET 配置文件 configSource 的用法
  • 原文地址:https://www.cnblogs.com/Kermit-Li/p/6715646.html
Copyright © 2011-2022 走看看