matplotlib 中 contourf和contour
哎呀,真的,这些函数看博客有些不靠谱……
别看其他的了,就看我这个就行了……
吐槽一下 这个和这个
以后只看官方文档就好了……
官方文档:https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.contourf.html
正如其所言,contourf本质上是画等势图,那么它总是要确定整个等势图的取值。
contour([X, Y,] Z, [levels], **kwargs)
level是分几层,这个没什么好说的。
关于X、Y、Z这几个个参数:
显然这里说了两种给参数的方式。
一种是X和Y都是长度分别为N和M的一维的list(只要array like就可以了),Z是N*M的二维list就可以。
这种给法,就确定了整个平面的整个取值:
X(通过list中最大值最小值)确定纵坐标长度、Y(通过list中最大值最小值)确定横坐标长度,Z在(Xi,Yi)指定点上有指定的值Zi。
例子:
import matplotlib.pyplot as plt
if __name__=='__main__':x0=[1,3,2,4,5,6]x1=[2,3,4,5,1,6]y=[[1,1,1,1,1,1],[1,1,1,1,1,1],[1,1,1,1,1,1],[2,2,2,2,2,2],[2,2,2,2,2,2],[2,2,2,2,2,2],]plt.contourf(x0, x1, y, cmap=plt.cm.Spectral, alpha=0.8)plt.show()
这种情况,实际上我们可以连X0,X1都不用给,因为你的y实际上已经确定出了一个等势图。
如果我们把x0,x1去掉,你会得到:
有时间,可以把y改成:
y=[[1,1,1,1,1,1],[1,1,2,2,1,1],[1,2,3,3,2,1],[1,2,3,3,2,1],[1,2,2,2,1,1],[1,1,1,1,1,1],]
结果你也能够看得出来,是一个小山峰,他会根据你网格的长宽中的取值自动给你配0-M和0-N。
第二种给法是通过meshgrid这个函数转换。
meshgrid就和她名字一样,叫融合网格(别嘲笑我翻译),把他们那些一维的array-like的东西做成网格。
我们换个元组,x0=[1,2,3],x1=[5,6,7]。
它到底是怎么“融合”的呢?
给个图你填空:
这图左边竖着的列是x0、上面横着的一行是x1,他们这样摆,能两人能组成一套坐标矩阵,
每个括号左边写x0对应的值,右边写x1对应的值。
写完之后应该是:
(1,5) (1,6) (1,7)
(2,5) (2,6) (2,7)
(3,5) (3,6) (3,7)
换个新的y:
y=
y = [[1, 1, 1 ],[1, 1, 2 ],[1, 2, 3 ],]
分别把y的每个元素和上面我打字出来的相应位置数对矩阵对应,这个意思。
meshgrid的返回值:
把每个数对左边的值取出来组成一个矩阵,然后把右边的取出来组成一个矩阵,这就是meshgrid分别返回的两个返回值。
再具体一点,(你可以拿笔纸自己写啊~~码字好累……)
第一个和第二个返回值是:
1 1 1 5 6 7第一个: 2 2 2 第二个: 5 6 73 3 3 5 6 7
那么干嘛要搞这个嘛!
实际上,在第一种给法里,y矩阵的各个值是有位置的,每一个y值都对应一个数对(A,B)。第一种给法函数默认认定y的元素的位置是是顺序的,相当于x0=[0,1,2],x1=[0,1,2]。
默认的话:
(2,0) (2,1) (2,2)
(1,0) (1,1) (1,2)
(0,0) (0,1) (0,2)
meshgrid可以不用默认这个方法,改变y矩阵的元素对应的数对。
一个和第一个例子等价的,用meshgrid的例子:
if __name__=='__main__':x0,x1=np.meshgrid([1,2,3,4,5,6],[1,2,3,4,5,6])y = [[1, 1, 1, 1, 1, 1],[1, 1, 2, 2, 1, 1],[1, 2, 3, 3, 2, 1],[1, 2, 3, 3, 2, 1],[1, 2, 2, 2, 1, 1],[1, 1, 1, 1, 1, 1],]plt.contourf(x0,x1, y, cmap=plt.cm.Spectral, alpha=0.8)plt.show()
matplotlib 中 contourf和contour相关推荐
- Matplotlib 中等高线图(contour)的绘制
Matplotlib 中等高线图(contour)的绘制 今天学习了matplotlib中的高线图的绘制,下面分享一下Matplotlib 中等高线图(contour)的绘制的步骤: 数据初始化 # ...
- matlab contourf设置范围,matplotlib.countourf与matlab.contourf()的区别-matplotlib中的奇数锐边...
我是最近从Matlab迁移到Python的人,最近与Numpy和Matplotlib合作过.我使用matplotlib对应的courtoff函数将我的一个脚本从使用Matlab的courtoff函数的 ...
- python matplotlib绘制等高线,plt.contour(),ax3.contour()和plt.contourf(),ax3.contour(), 同名函数
引用文章 https://blog.csdn.net/lanchunhui/article/details/70495353 首先这是由不同对象调用的函数,ax3指3D Figure对象即<cl ...
- python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...
自定义colorbar(draw colorbar without any mapple/plot) 参考:Customized Colorbars Tutorial api example code ...
- matplotlib中绘图常用函数
matplotlib中常用函数 散点图 柱状图 等高线 matplotlib绘制3D图 子图像 动态图 常见设置 一.设置坐标轴 # x轴和y轴的值域 plt.xlim((-1,2)) plt.yli ...
- python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条
文章目录 自定义colorbar(draw colorbar without any mapple/plot) contourf函数 为所有子图添加一个色带 推荐色带与自定义色带 PS: 传送门--自 ...
- matplotlib.pyplot contourf()函数的使用
matplotlib.pyplot contourf coutour([X, Y,] Z,[levels], **kwargs) 是来绘制等高线的,contour和contourf都是画三维等高线图 ...
- matplotlib中文文档_python绘图库——Matplotlib及Seaborn使用(入门篇1)
在数据分析过程中,数据及模型可视化是无可避免的,同时这也是展示我们数据分析成果的最佳方式.因此,熟悉掌握绘图库的使用,对精进我们的数据分析技能起着不可替代的作用. 今天,我们就来了解一下python强 ...
- Python 绘图问题:Matplotlib中plt.rcParams[]使用方法 rcsetup.py matplotlibrc
文章目录 from `__init__.py` from matplotlibrc from rcsetup.py from __init__.py # this is the instance us ...
最新文章
- android控制小米设备吗,智能设备一指连:小米 UWB 技术发布,手机指向设备直接操控...
- dbscan算法c语言实现,用C++实现DBSCAN聚类算法
- 首款Android 16旗舰敲定!谷歌Pixel 6系列将获5年Android更新
- linux用户管理和群界面怎么打开,Linux的用户和组群管理
- hardmard积 用什么符号表示_表面粗糙度=表面光洁度?数值为什么用0.8、1.6、3.2等表示?...
- 【基础】算法时空复杂度【OI缩水版】
- 期末作业代码网页设计代码——蛋糕甜品店铺(11页) HTML+CSS+JavaScript 关于美食甜品的HTML网页设计
- ubuntu android驱动,ubuntu中正确设置android手机驱动程序
- 三大变换与自控(五)三角函数的正交性证明
- 飞行控制系统的快速原型设计与半物理仿真方法及系统ETest_DEV
- oracle中的start with
- 软件测试PC端web通用测试用例
- python笑脸猫图案_酷叮猫编程课堂:python生成字符画
- 盘点百度 4 个牛逼哄哄的开源项目
- 设计模式学习--观察者模式(Observer Pattern)
- 转让天嵌2440开发板arm9
- Lucas定理相关证明
- Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证
- 从G1到冻酸奶Froyo
- C#时间转换几秒几分钟.....前