基于matplotlib的数据可视化 - 等高线 contour 与 contourf
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的更多相关文章
- 基于matplotlib的数据可视化 - 笔记
1 基本绘图 在plot()函数中只有x,y两个量时. import numpy as np import matplotlib.pyplot as plt # 生成曲线上各个点的x,y坐标,然后用一 ...
- 基于matplotlib的数据可视化 - 饼状图pie
绘制饼状图的基本语法 创建数组 x 的饼图,每个楔形的面积由 x / sum(x) 决定: 若 sum(x) < 1,则 x 数组不会被标准化,x 值即为楔形区域面积占比.注意,该种情况会出现 ...
- 基于matplotlib的数据可视化 - 热图imshow
热图: Display an image on the axes. 可以用来比较两个矩阵的相似程度 mp.imshow(z, cmap=颜色映射,origin=垂直轴向) imshow( X, cma ...
- 基于matplotlib的数据可视化 -
matplotlib.pyplot(as mp or as plt)提供基于python语言的绘图函数 引用方式: import matplotlib.pyplot as mp / as plt 本章 ...
- 基于matplotlib的数据可视化 - 三维曲面图gca
1 语法 ax = plt.gca(projection='3d')ax.plot_surface(x,y,z,rstride=行步距,cstride=列步距,cmap=颜色映射) gca(**kwa ...
- 基于matplotlib的数据可视化 - 柱状图bar
柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...
- 基于matplotlib的数据可视化(图形填充fill fill_between) - 笔记(二)
区域填充函数有 fill(*args, **kwargs) 和fill_between() 1 绘制填充多边形fill() 1.1 语法结构 fill(*args, **kwargs) args - ...
- matplotlib实现数据可视化
一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...
- 使用 jupyter-notebook + python + matplotlib 进行数据可视化
上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看 ...
随机推荐
- 如何用简单例子讲解 Q - learning 的具体过程?
作者:牛阿链接:https://www.zhihu.com/question/26408259/answer/123230350来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- seajs 使用文档
// seajs 的简单配置seajs.config({ base: "/scripts/", alias: { "jquery": ...
- C++中引用传递与指针传递的区别
最近Garena面试的过程中,面试官提了一个问题,C++中引用传递和指针传递的区别? 根据自己的经验,联想到了swap函数,只知道既可以用引用来实现,又可以用指针传递来实现,至于二者有何区别,自己还真 ...
- 解决工作中遇到的一个"打开,保存"文件框的bug的过程
工作中遇到的这个问题还是很有意思的.其中嵌套了很多奇葩性的问题. (转载请指明出于breaksoftware的csdn博客) 我们来看下故事的发生过程,QA同学发现我们存在如下的bug 看到如此多的串 ...
- 通过javac导出Jar包
我的目录结构d:/test/ ../ src ../build src下面放java源文件build下面放编译好的classes 下面是我的操作,我在test目录下 ...
- 使用Json.Net解决MVC中各种json操作
最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能. ...
- 浅谈mysql中utf8和utf8mb4区别
转自:http://ourmysql.com/archives/1402 实践过程中发现有时mysql的字符集会引起故障,所以需要了解下这个知识点. 一.简介 MySQL在5.5.3之后增加了这个u ...
- WIN下Git GUI 教程
现在很多都有git来托管项目或者来查找资料,但是看起来操作不是很方便,现在由于win下可以直接使用git gui,让使用git变得方便,当然这只是针对日常简单的使用,如果想详细的使用,可以去参考廖学峰 ...
- PgSql备份pg_dump与还原手记pg_restore
真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql命令行操作区别还挺大.不用怕,但绝对要细心,因为数据库操作是网站的核心,一旦出现损坏或丢失,后果就非常 ...
- “Info.plist” couldn’t be removed
Showing All Messages error: failed to remove /Users/Rubert/Library/Developer/Xcode/DerivedData/Proje ...