哎呀,真的,这些函数看博客有些不靠谱……

别看其他的了,就看我这个就行了……

吐槽一下       这个和这个

以后只看官方文档就好了……

官方文档: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

写完之后应该是:

(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相关推荐

  1. Matplotlib 中等高线图(contour)的绘制

    Matplotlib 中等高线图(contour)的绘制 今天学习了matplotlib中的高线图的绘制,下面分享一下Matplotlib 中等高线图(contour)的绘制的步骤: 数据初始化 # ...

  2. matlab contourf设置范围,matplotlib.countourf与matlab.contourf()的区别-matplotlib中的奇数锐边...

    我是最近从Matlab迁移到Python的人,最近与Numpy和Matplotlib合作过.我使用matplotlib对应的courtoff函数将我的一个脚本从使用Matlab的courtoff函数的 ...

  3. python matplotlib绘制等高线,plt.contour(),ax3.contour()和plt.contourf(),ax3.contour(), 同名函数

    引用文章 https://blog.csdn.net/lanchunhui/article/details/70495353 首先这是由不同对象调用的函数,ax3指3D Figure对象即<cl ...

  4. python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...

    自定义colorbar(draw colorbar without any mapple/plot) 参考:Customized Colorbars Tutorial api example code ...

  5. matplotlib中绘图常用函数

    matplotlib中常用函数 散点图 柱状图 等高线 matplotlib绘制3D图 子图像 动态图 常见设置 一.设置坐标轴 # x轴和y轴的值域 plt.xlim((-1,2)) plt.yli ...

  6. python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条

    文章目录 自定义colorbar(draw colorbar without any mapple/plot) contourf函数 为所有子图添加一个色带 推荐色带与自定义色带 PS: 传送门--自 ...

  7. matplotlib.pyplot contourf()函数的使用

    matplotlib.pyplot contourf  coutour([X, Y,] Z,[levels], **kwargs) 是来绘制等高线的,contour和contourf都是画三维等高线图 ...

  8. matplotlib中文文档_python绘图库——Matplotlib及Seaborn使用(入门篇1)

    在数据分析过程中,数据及模型可视化是无可避免的,同时这也是展示我们数据分析成果的最佳方式.因此,熟悉掌握绘图库的使用,对精进我们的数据分析技能起着不可替代的作用. 今天,我们就来了解一下python强 ...

  9. Python 绘图问题:Matplotlib中plt.rcParams[]使用方法 rcsetup.py matplotlibrc

    文章目录 from `__init__.py` from matplotlibrc from rcsetup.py from __init__.py # this is the instance us ...

最新文章

  1. android控制小米设备吗,智能设备一指连:小米 UWB 技术发布,手机指向设备直接操控...
  2. dbscan算法c语言实现,用C++实现DBSCAN聚类算法
  3. 首款Android 16旗舰敲定!谷歌Pixel 6系列将获5年Android更新
  4. linux用户管理和群界面怎么打开,Linux的用户和组群管理
  5. hardmard积 用什么符号表示_表面粗糙度=表面光洁度?数值为什么用0.8、1.6、3.2等表示?...
  6. 【基础】算法时空复杂度【OI缩水版】
  7. 期末作业代码网页设计代码——蛋糕甜品店铺(11页) HTML+CSS+JavaScript 关于美食甜品的HTML网页设计
  8. ubuntu android驱动,ubuntu中正确设置android手机驱动程序
  9. 三大变换与自控(五)三角函数的正交性证明
  10. 飞行控制系统的快速原型设计与半物理仿真方法及系统ETest_DEV
  11. oracle中的start with
  12. 软件测试PC端web通用测试用例
  13. python笑脸猫图案_酷叮猫编程课堂:python生成字符画
  14. 盘点百度 4 个牛逼哄哄的开源项目
  15. 设计模式学习--观察者模式(Observer Pattern)
  16. 转让天嵌2440开发板arm9
  17. Lucas定理相关证明
  18. Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证
  19. 从G1到冻酸奶Froyo
  20. C#时间转换几秒几分钟.....前

热门文章

  1. python画菱形的代码_题目:python 打印出如下图案(菱形):
  2. 第十六章 网络通信协议探讨
  3. Oracle项目管理系统之质量监督检查管理
  4. 石大师一键装机具体操作教程
  5. QQ数据恢复群-超级群 30481379 ,欢迎交流!
  6. 数据库设计——订餐系统
  7. 2022消费市场并未降级?麦肯锡调研报告解读
  8. 树莓派连接HDMI转VGA显示:输出超出范围
  9. Python爬虫实战(一) ---- 制作自己的桌面天气小工具
  10. 【预测模型】基于差分进化算法优化BP神经网络实现数据预测matlab源码