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

contour  - 绘制等高线

contourf - 填充等高线

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

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

常用参数语法

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

1 示例一 

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

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

2 示例二

contour实现等高线的绘制功能

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

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

3 示例 3

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. n = 1000 # 做1000*1000的点阵
  4.  
  5. # 用meshgrid生成一个二维数组
  6. x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
  7. z = (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 - y**2)
  8.  
  9. # 画图
  10. plt.figure('Contour', facecolor='lightgray')
  11. plt.title('Contour', fontsize=20)
  12. plt.xlabel('x', fontsize=14)
  13. plt.ylabel('y', fontsize=14)
  14. plt.tick_params(labelsize=10)
  15. plt.grid(linestyle=':')
  16.  
  17. # 填充等高线图
  18. plt.contourf(x, y, z, 8, cmap='jet')
  19. # 绘制等高线
  20. cntr = plt.contour(x, y, z, 8, colors='black',linewidths=0.5)
  21. # 标注等高线
  22. plt.clabel(cntr, inline_spacing=1, fmt='%.1f', fontsize=8)
  23.  
  24. plt.show()

注:

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

clabel() 函数的用法

释义:

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

上述示例3中

  1. cntr = plt.contour(x, y, z, 8, colors='black',linewidths=0.5)
  2. print(cntr)
  3. # <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. JavaScript 判断一个对象{}是否为空对象的简单方法

    第一种: function isEmptyObject(obj) { for (var key in obj) { //返回false,不为空对象 return false; } return tru ...

  2. Javascript 闭包(Closures)

    本文内容 闭包 闭包和引用 参考资料 闭包是 JavaScript 的重要特性,非常强大,可用于执行复杂的计算,可并不容易理解,尤其是对之前从事面向对象编程的人来说,对 JavaScript 认识和编 ...

  3. eclipse,myeclipse综合

    1.Myeclipse点击发布无反应 进入workspace目录,删除.metadata\.plugins\org.eclipse.core.runtime\.settings\com.genuite ...

  4. struts笔记

    Struts视频笔记: Struts是一个开源的web框架,框架提高了程序的规范的同时也约束了程序员的自由 为什么会有struts: 因为我们队mvc理解的不同,可能造成不同公司写程序的时候,规范不统 ...

  5. 加快Android Studio的编译速度

    从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度 使用Gradl ...

  6. JavaScript 之 JavaScript 对象

    重新看JavaScript对象,参考资料: RUNOOB.COM:http://www.runoob.com/jsref/jsref-fromcharcode.html: CodePlayer:htt ...

  7. Log4j发送日志邮件功能

    昨天配置了log4j发送错误日志的功能,很实用,记录一下! Log4j可以实现输出到控制台,文件,回滚文件,发送日志邮件,数据库,自定义标签.例如: log4j.rootLogger=DEBUG, I ...

  8. XWindow、Server、Client和QT、GTK之间的关系

    X WINDOW X Window从逻辑上分为三层:X Server.X Client和X协议.最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘.鼠标的操作并将 ...

  9. 如何进入docker容器

    http://blog.csdn.net/u010397369/article/details/41045251

  10. HDU 4585 平衡树Treap

    点击打开链接 题意:给出n组数,第一个数是id.第二个数是级别.每输入一个.输出这个人和哪个人打架,这个人会找和他级别最相近的人打,假设有两个人级别和他相差的一样多,他就会选择级别比他小的打架. 思路 ...