• python+matplotlib 绘制等高线


    python+matplotlib 绘制等高线

     步骤有七:

    • 有一个m*n维的矩阵(data),其元素的值代表高度
    • 构造两个向量:x(1*n)和y(1*m)。这两个向量用来构造网格坐标矩阵(网格坐标矩阵m*n维,可见与data同)
    • 构造网格坐标矩阵X,Y
    • 进行颜色填充
    • 画等高线
    • 等高线的描述
    • 删掉坐标系

    1. 构造一下高度矩阵:

    def f(x,y):
        """
        计算高度的函数
        :param x: 向量
        :param y: 向量
        :return: dim(x)*dim(y)维的矩阵
        """
        # the height function
        return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)

     2. 构造两个向量:

    x = np.linspace(-5,5,256)
    y = np.linspace(-5,5,256)

    3. 构造网格坐标矩阵:

    X,Y = np.meshgrid(x,y)  # 获得网格坐标矩阵

    4. 进行颜色填充:

    # 进行颜色填充
    plt.contourf(X,Y,f(X,Y),8,cmap=plt.cm.hot)

    5. 画等高线:

    # 进行等高线绘制
    c = plt.contour(X,Y,f(X,Y),8,colors='black')

    6. 等高线描述:

    # 线条标注的绘制
    plt.clabel(c,inline=True,fontsize=10)

    7. 删除两条坐标:

    plt.xticks(())
    plt.yticks(())

    -------------------------------------------------------------------------------------------------

    将上面的代码总结一下:

    import numpy as np
    import matplotlib.pyplot as plt
    
    def f(x,y):
        """
        计算高度的函数
        :param x: 向量
        :param y: 向量
        :return: dim(x)*dim(y)维的矩阵
        """
        # the height function
        return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)
    
    x = np.linspace(-5,5,256)
    y = np.linspace(-5,5,256)
    X,Y = np.meshgrid(x,y)  # 获得网格坐标矩阵
    
    # 进行颜色填充
    plt.contourf(X,Y,f(X,Y),8,cmap=plt.cm.hot)
    # 进行等高线绘制
    c = plt.contour(X,Y,f(X,Y),8,colors='black')
    # 线条标注的绘制
    plt.clabel(c,inline=True,fontsize=10)
    
    plt.xticks(())
    plt.yticks(())
    
    plt.show()

    运行结果:

     

     

  • 相关阅读:
    SCSI contrller的几种类型的区别
    ScaleIO与XtremSW Cache如何集成呢?
    如何强制使用某一大小的包去ping某个IP地址?
    如何查看ETW Trace?
    图像卷积与滤波的一些知识点(转)
    tensorflow serving 编写配置文件platform_config_file的方法
    python在linux的报错集锦
    某些数组和字符串类型转换(转)
    系统安装-007 CentOS7yum源添加、删除及其yum优化(转)
    Error:Failed to resolve: android.arch.core:common:1.1.0
  • 原文地址:https://www.cnblogs.com/thisyan/p/9715593.html
Copyright © 2020-2023  润新知