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 绘制等高线的更多相关文章

  1. 【转】使用Python matplotlib绘制股票走势图

    转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...

  2. python+matplotlib+绘制不同图标类型

    #==================================================================#首先需要导入两个文件import matplotlib.pypl ...

  3. Python Matplotlib绘制气温图表

    代码中数据从 www.wunderground.com/history/ 下载 #coding=utf-8 import csv from datetime import datetime from ...

  4. python matplotlib绘制六种可视化图表

    1. 折线图 绘制折线图,如果你数据不是很多的话,画出来的图将是曲折状态,但一旦你的数据集大起来,比如下面我们的示例,有100个点,所以我们用肉眼看到的将是一条平滑的曲线. 这里我绘制三条线,只要执行 ...

  5. Python matplotlib绘制圆环图

    一.语法和参数简介 plt.pie(x2,labels=labels, autopct = '%0.2f%%', shadow= False, startangle =0,labeldistance= ...

  6. Python学习(一) —— matplotlib绘制三维轨迹图

    在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...

  7. Python 使用 matplotlib绘制3D图形

    3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线( ...

  8. python使用matplotlib绘制折线图教程

    Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...

  9. Python——使用matplotlib绘制柱状图

    Python——使用matplotlib绘制柱状图 1.基本柱状图           首先要安装matplotlib(http://matplotlib.org/api/pyplot_api.htm ...

随机推荐

  1. python:Non-ASCII character ‘\xe2′ in file

    python 2.7系列的  在运行.py文件时 报错python:Non-ASCII character ‘\xe2′ in file 解决办法:  在文件顶部 加入  #  coding: utf ...

  2. 爬虫之绘图matplotlib与词云(七)

    1 绘制条形图 import matplotlib # 数据可视化 from matplotlib import pyplot as plt # 配置字体 matplotlib.rcParams[&q ...

  3. 基于alpine定制常用命令镜像

    FROM alpine RUN apk update RUN apk add curl coreutils 像busybox.alpine镜像date命令都不是完整版的,不能执行加减的操作(date ...

  4. 【LOJ6060】「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set(线性基)

    点此看题面 大致题意: 让你把\(n\)个数分成两部分,使得在两部分异或和之和最大的前提下,两个异或和中较小的那个尽量小.输出最优的较小异或和. 线性基 关于线性基,可以看一下这篇博客:线性基入门. ...

  5. 【[HAOI2008]木棍分割】

    没写过几道的前缀和优化\(dp\) 第一问是小学生难度的二分 第二问就直接\(dp\)了 设\(dp[i][j]\)表示当前分割点在\(i\)之后,前面一共分割了\(j\)段的方案数 利用前缀和单调性 ...

  6. 小练习——关于循环条件---for

    1.打印100个“非常”的句子 static void Main(string[] args) { //打印20个“非常" Console.WriteLine("打印100个非常& ...

  7. java实现按拼音排序

    List<WaPayFileVO> list =(List<WaPayFileVO>) dao.execQueryBeanList(pagesql, params.toArra ...

  8. 创建VS工程使用神经网络库——FANN

    编译: sourceforge上的FANN库带VS2010的工程,我机器上装的VS2005,用不了,愁人,只能手动创建工程了,编译不过,度娘不管用,FQ麻烦,用雅虎搜到一个工程的创建配置,调整配置试一 ...

  9. 第13章 GPIO输入—按键检测

    本章参考资料:<STM32F76xxx参考手册>.库帮助文档<STM32F779xx_User_Manual.chm>. 按键检测使用到GPIO外设的基本输入功能,本章中不再赘 ...

  10. Extjs treePanel 的treestore重复加载问题解决

    在Extjs 4.2.2 中构建一个treePanel 发现设置rootVisible后 ,treeStore中设置的autoLoad:false不启作用,在组件初始化的时候即加载数据源,造成数据重复 ...