码迷,mamicode.com
首页 > 编程语言 > 详细

python+matplotlib 绘制等高线

时间:2018-09-27 22:06:41      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:hot   color   python   line   code   size   ack   plt   show   

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

 

运行结果:

技术分享图片

 

 

 

python+matplotlib 绘制等高线

标签:hot   color   python   line   code   size   ack   plt   show   

原文地址:https://www.cnblogs.com/thisyan/p/9715593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!