contour 与contourf 是绘制等高线的利器。

contour  - 绘制等高线

contourf - 填充等高线

两个的返回值值是一样的(return values are the same),

实际上contourf 相当于 contour filled (英语不好,具体是fill 还是 filled)

常用参数语法

mp.contourf(x, y, z, 等高线条数,cmap=颜色映射)# 等高线填充
mp.contour(x, y, z, 等高线条数,colors=颜色, linewidth=线宽)#等高线绘制

1 示例一 

contourf函数是实现等高线的填充功能。

import numpy as np
import matplotlib.pyplot as plt
x=np.array([1,2])
y=np.array([1,2])
z=np.array([[1,2],[2,3]])
plt.xlim(1,2)
plt.ylim(1,2)
plt.contourf(x,y,z,cmap='brg')
help(plt.contour)
plt.show()

2 示例二

contour实现等高线的绘制功能

import numpy as np
import matplotlib.pyplot as plt
x=np.array([1,2])
y=np.array([1,2])
z=np.array([[1,2],[2,3]])
plt.xlim(1,2)
plt.ylim(1,2)
plt.contour(x,y,z,cmap='brg')
help(plt.contour)
plt.show()

关于怎么计算的,可以参考求问contour 画等高线的原理是什么?

3 示例 3

import numpy as np
import matplotlib.pyplot as plt
n = 1000  # 做1000*1000的点阵

# 用meshgrid生成一个二维数组
x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
z = (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 - y**2)

# 画图
plt.figure('Contour', facecolor='lightgray')
plt.title('Contour', fontsize=20)
plt.xlabel('x', fontsize=14)
plt.ylabel('y', fontsize=14)
plt.tick_params(labelsize=10)
plt.grid(linestyle=':')

# 填充等高线图
plt.contourf(x, y, z, 8, cmap='jet')
# 绘制等高线
cntr = plt.contour(x, y, z, 8, colors='black',linewidths=0.5)
# 标注等高线
plt.clabel(cntr, inline_spacing=1, fmt='%.1f', fontsize=8)

plt.show()

注:

(1)绘制等高线 与 填充等高线 不分先后顺序

clabel() 函数的用法

释义:

标记等高线,为向 CS 中的轮廓线添加标签,其中CS是一个由contour函数返回的matplotlib.contour.ContourSet对象。

上述示例3中

cntr = plt.contour(x, y, z, 8, colors='black',linewidths=0.5)
print(cntr)
# <matplotlib.contour.QuadContourSet object at 0x00000296B7901CC0>

 语法:

clabel(CS, *args, **kwargs)

参数:

CS - 由contour函数产生的句柄对象

fontsize - string(smaller, x-large) or float ,optional

colors - Color of each label

None, 标记的颜色为轮廓的颜色

one string color (e.g color = 'r' ), 所有的标签均为红色

a tuple of matplotlib color args (string, float, rgb, etc), 不同的标签按照指定的颜色标记

inline - bool, optional . 默认True(在标签位值移除轮廓线,也即标签覆盖轮廓线,而非穿越)

inline_spacing - float, optional,默认5,放置内联时,标签两侧留有的像素空间

fmt - string or dict, optional, 默认'%1.3f ',保留小数位。1.3中的1表示输出位宽,3表示小数位长度,此时实际数据会覆盖掉该数据对应的轮廓线;当9.3时,轮廓线会被覆盖掉9个位置,同时小数点后保留3位,也就是说,轮廓线移除的长度大于数据长度 谁能来给我解释一下%2.3d和%3.3f

manual - bool or iterable, optional , 手动添加标签。忽略该字典

rightside_up - bool, optional,默认 True(标签旋转均以正负90度计)

use_clabeltext - bool, optional,默认False,若为True,则用 `ClabelText` class (instead of `Text`) 创建标签,当使用“CababelTress”绘制文本时,会重新计算文本的旋转角度,因此,如果轴的角度发生变化时,可以使用“CababelTress”来旋转角度。

参考 Python可视化库matplotlib.pyplot里contour与contourf的区别

基于matplotlib的数据可视化 - 等高线 contour 与 contourf的更多相关文章

  1. 基于matplotlib的数据可视化 - 笔记

    1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...

  2. 基于matplotlib的数据可视化 - 饼状图pie

    绘制饼状图的基本语法 创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定: 若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比.注意,该种情况会出现 ...

  3. 基于matplotlib的数据可视化 - 热图imshow

    热图: Display an image on the axes. 可以用来比较两个矩阵的相似程度 mp.imshow(z, cmap=颜色映射,origin=垂直轴向) imshow( X, cma ...

  4. 基于matplotlib的数据可视化 -

    matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章 ...

  5. 基于matplotlib的数据可视化 - 三维曲面图gca

    1 语法 ax = plt.gca(projection='3d')ax.plot_surface(x,y,z,rstride=行步距,cstride=列步距,cmap=颜色映射) gca(**kwa ...

  6. 基于matplotlib的数据可视化 - 柱状图bar

    柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...

  7. 基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)

    区域填充函数有 fill(*args, **kwargs) 和fill_between() 1  绘制填充多边形fill() 1.1 语法结构 fill(*args, **kwargs) args - ...

  8. matplotlib实现数据可视化

    一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...

  9. 使用 jupyter-notebook + python + matplotlib 进行数据可视化

    上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看 ...

随机推荐

  1. PHP构造函数的重载

    由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型,字符串之类的标量类型上),并且对于一个函数,比如只定义了3个输入参数,PHP却运行调用的时候输入 ...

  2. Dijkstra和Floyd_warshall

    import java.util.Arrays; import java.util.Scanner; /*题目描写叙述: 有n个城市.城市间有m条道路.每条道路都有长度d.给你起点城市s终点终点t.要 ...

  3. 5个经典的JavaScript面试题

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开 发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了.但是在面试之 ...

  4. .NET Framework System.Array.Sort 数组类,加深对 IComparer、IComparable 以及泛型委托、匿名方法、Lambda 表达式的理解

    本文内容 自定义类 Array.Sort 参考资料 System.Array.Sort 有很多对集合的操作,比如排序,查找,克隆等等,你可以利用这个类加深对 IComparer.IComparable ...

  5. android中实现自定义广播

    自定义广播分两个步骤:1.发送广播 2.接收广播 一.先看如何接收广播: 我使用的是Android Studio,File->New->Other->Broadcast Receiv ...

  6. 学习 Linux,302(混合环境): 概念

    http://www.ibm.com/developerworks/cn/linux/l-lpic3-310-1/ 概述 在本文中,学习以下概念: Server Message Block (SMB) ...

  7. Java Web部署到tomcat后,使用动态编译无法找到相关类的解决方案

    一.问题 动态编译java文件时(这个java文件虽引用了第三方jar包),如果这个过程发生在java命令行程序中,则正常编译.如果发生在JavaWeb中,然后此Java部署到Tomcat之后,执行动 ...

  8. LevelDB初体验测试

    最近工作需要找一个能使用磁盘存储数据,对写要求比较苛刻,需要每秒达100000TPS,读的时候需要能10000TPS左右,不能占用太多内存.单节点满足这个要求的常见有Redis.Memcached等, ...

  9. Mina.Net实现的断线重连

    using Mina.Filter.Codec; using Mina.Filter.Codec.TextLine; using System; using System.Collections.Ge ...

  10. 使用C语言操作InfluxDB

    环境: CentOS6.5_x64 InfluxDB版本:1.1.0 InfluxDB官网暂未提供C语言开发库,但github提供的有: https://github.com/influxdata/i ...