python+matplotlib 绘制等高线

python+matplotlib 绘制等高线

 步骤有七:

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

1. 构造一下高度矩阵:

def fx,y):
    """
    计算高度的函数
    :param x: 向量
    :param y: 向量
    :return: dimx)*dimy)维的矩阵
    """
    # 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.meshgridx,y)  # 获得网格坐标矩阵

4. 进行颜色填充:

# 进行颜色填充
plt.contourfX,Y,fX,Y),8,cmap=plt.cm.hot)

5. 画等高线:

# 进行等高线绘制
c = plt.contourX,Y,fX,Y),8,colors='black')

6. 等高线描述:

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

7. 删除两条坐标:

plt.xticks))
plt.yticks))

————————————————————————————————-

将上面的代码总结一下:

import numpy as np
import matplotlib.pyplot as plt

def fx,y):
    """
    计算高度的函数
    :param x: 向量
    :param y: 向量
    :return: dimx)*dimy)维的矩阵
    """
    # 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.meshgridx,y)  # 获得网格坐标矩阵

# 进行颜色填充
plt.contourfX,Y,fX,Y),8,cmap=plt.cm.hot)
# 进行等高线绘制
c = plt.contourX,Y,fX,Y),8,colors='black')
# 线条标注的绘制
plt.clabelc,inline=True,fontsize=10)

plt.xticks))
plt.yticks))

plt.show)

运行结果:

 

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注