博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python+matplotlib 绘制等高线
阅读量:7033 次
发布时间:2019-06-28

本文共 1347 字,大约阅读时间需要 4 分钟。

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 npimport matplotlib.pyplot as pltdef 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()

 

运行结果:

 

 

 

转载于:https://www.cnblogs.com/thisyan/p/9715593.html

你可能感兴趣的文章
mysql安装
查看>>
mysql优化小技巧
查看>>
【解题报告】【HDOJ1102】【最小生成树】Constructing Roads
查看>>
sublime自己常用到的设置
查看>>
python--面向对象
查看>>
HDU 1231 最大连续子序列
查看>>
u-boot(五)内核启动
查看>>
Vue.js 2.x笔记:状态管理Vuex(7)
查看>>
C文件操作
查看>>
咕了很长时间,先把一些洛谷easy 写出来吧
查看>>
递归计算全排列
查看>>
织梦dedecms搜索页加上序列号autoindex
查看>>
Fantacy团队周一站立会议
查看>>
c语言指针疑惑[转载]
查看>>
设计模式:状态模式(State Pattern)
查看>>
iOS开发官方文档汇总
查看>>
观察者模式
查看>>
MP4 atom (1)
查看>>
常见浏览器兼容性问题与解决方案(下)
查看>>
C++中this指针的用法详解
查看>>