基于python,Matplotlib绘制函数的等高线与三维图像
作者:夏小悠?? 发布时间:2021-09-06 08:51:33
标签:Matplotlib,绘制,函数,三维图像
本篇文章记录一下函数的等高线及其三维图像的可视化方法。
本例绘制的函数为:
1. 网格点
  在绘制曲线之前,先了解一下网格点的绘制。比如绘制一个3x3的网格,那么就需要9个坐标点:
(0,2)-----(1,2)-----(2,2)
(0,1)-----(1,1)-----(2,1)
(0,0)-----(1,0)-----(2,0)
  将其x轴和y轴坐标分开表示:
# x轴:
[[0, 1, 2],
[0, 1, 2],
[0, 1, 2]]
# y轴:
[[0, 0, 0],
[1, 1, 1],
[2, 2, 2]]
  在numpy中可以使用np.meshgrid()来生成网格点:
import numpy as np
import matplotlib.pyplot as plt
# 10x10
x = np.linspace(-1.5, 1.5, num=10)
y = np.linspace(-1.5, 1.5, num=10)
# generate grid
X, Y = np.meshgrid(x, y)
plt.plot(X, Y, marker='.', linestyle='')
plt.grid(True)
plt.show()
2. 等高线
  绘制等高线需要的数据有点的坐标位置(x, y)以及坐标的高度z,高度z就是将坐标点(x, y)带入函数f ( x , y ) f(x, y)f(x,y)中计算得到的,在matplotlib
中可以使用plt.contour()来绘制:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)
fig = plt.figure()
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)
# draw
ax = plt.contour(X, Y, f, levels=10, cmap=plt.cm.cool)
# add label
plt.clabel(ax, inline=True)
# plt.savefig('img1.png')
plt.show()
 
# add color
plt.contourf(X, Y, f, levels=10, cmap=plt.cm.cool)
# plt.colorbar()
# plt.savefig('img1.png')
plt.show()
 更多的api参数请参考官方文档。
3. 三维图像
  函数的三维图像的绘制需要的数据与等高线一样,即坐标位置(x, y)以及坐标的高度z,在matplotlib中可以使用mpl_toolkits.mplot3d来绘制:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.linspace(-1.5, 1.5, num=100)
y = np.linspace(-1.5, 1.5, num=100)
X, Y = np.meshgrid(x, y)
f = X * np.exp(-X**2 - Y**2)
fig = plt.figure()
ax = Axes3D(fig)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)
ax.plot_surface(X, Y, f, cmap=plt.cm.cool)
# plt.savefig('img1.png')
plt.show()
  有关mpl_toolkits.mplot3d的使用可以参考官方文档;
  更多的颜色搭配可参考matplotlib的colormap官方手册。
来源:https://blog.csdn.net/qq_42730750/article/details/122564379
0
投稿
猜你喜欢
- 本人就职于一个本地门户网站,每天网站上的天气都得更新。久而久之感到相当麻烦,于是写了一个定时的新闻小偷,帖出来大家参考一下系统
- 如果在 Access 数据库中删除数据或对象,或者在 Access 项目中删除对象,Access 数据库或 Access 项目可能会产生碎片
- 1.函数对象前面我们学习了关于Python中的变量类型,例如int、str、bool、list等等…&hell
- 这篇文章与大家分享13个超级有用的 jQuery 内容滚动插件和教程。您可能经常能看到一些网站上特色区域的内容以滚动方式变化,这是一种在有限
- 今天我想讲一讲关于Elasticsearch的索引建立,当然提前是你已经安装部署好Elasticsearch。ok,先来介绍一下Elatic
- 这也是老早前整理的了,也贴出来吧:1. showModalDialog和showModelessDialog的异同
- 实现思路:分为两部分,第一部分,获取网页上数据并使用xlwt生成excel(当然你也可以选择保存到数据库),第二部分获取网页数据使用IO流将
- 我们在使用ASP 内置的ADO组件进行数据库编程时,通常是在脚本的开头打开一个连接,并在脚本的最后关闭它,但是就较大脚本而言,在多
- 测试题defer有一些规则,如果不了解,代码实现的最终结果会与预期不一致。对于这些规则,你了解吗?这是关于defer使用的代码,可以先考虑一
- 先上图片词云图需要模板pip install jiebapip install wordcloud还需要安装另外两个东西这两个我也不太懂借鉴
- 1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Se
- 概要说明:自动更新程序主要负责从服务器中获取相应的更新文件,并且把这些文件下载到本地,替换现有的文件。达到修复Bug,更新功能的目的。本文作
- 1. 查看本机系统及python版本# cat /etc/redhat-release CentOS release 6.7 (Final)
- 前言Golang语言有诸多优点:静态编译、协程、堪比c语言的高性能。但是也有一些令人发指的地方 —— 经常被人调侃 五行代码,三行错误处理
- unittest是python的一个单元测试框架关于断言它是用于对一个确定结果和预测结果的一种判断,如果结果正确无任何返回效果,如果结果错误
- 生产定制一个彩条标签。首先导入:import matplotlib.pyplot as pltimport numpy as npfrom
- 爬取xxx天气爬取网址:https://tianqi.2345.com/today-60038.htm安装pip install scrap
- TensorFlow保存模型代码import tensorflow as tffrom tensorflow.python.framewor
- 新浪天气预报代码,需要的朋友可以复制下面的代码到要显示的页面,新浪代码 :<IFRAME WIDTH='260
- 一行命令搭建一个基于python的http文件传输服务由于今天朋友想要一个文件,而我恰好有,因为这个文件比较大,网速不是很给力,所以想到了p