文章目录

  • 前言
  • 1. 网格点
  • 2. 等高线
  • 3. 三维图像

前言

  本篇文章记录一下函数的等高线及其三维图像的可视化方法。本例绘制的函数为f(x,y)=xe−(x2+y2)f(x,y)=x e^{-(x^2+y^2)}f(x,y)=xe−(x2+y2)

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 pltx = 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 Axes3Dx = 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)
# ax.set_xlabel('X')
# ax.set_ylabel('Y')
# ax.set_zlabel('Z')
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的使用可以参考官方文档;

  更多的颜色搭配可参考matplotlibcolormap官方手册。

Matplotlib绘制函数的等高线与三维图像相关推荐

  1. matplotlib绘制函数图像

    matplotlib绘制函数图像 一.函数曲线 二.饼图 三.二维条形直方图 四.箱线图 五.对数曲线图 一.函数曲线 y=sin⁡x+1y=cos⁡x2+1y=\sin x+1 \\ y=\cos ...

  2. python之matplotlib绘制函数z=x^2+y^2三维图

    绘制三维图入门:Z=X^2 + Y^2 步骤: 1.先绘制出三维坐标 2.定义函数表达式 3.绘制三维图像 1.先绘制出三维坐标 from matplotlib import pyplot as pl ...

  3. Python+matplotlib绘制函数曲线查找函数极值

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...

  4. Python使用turtle绘制函数y=9-x^2的图像

    turtle是Python自带的绘图模块,可以轻松完成很多图形的绘制,启动IDLE之后,单击菜单"help"==>"Turtle Demo"可以查看自带的 ...

  5. 【matplotlib】绘制简单二维、三维图像

    学习,matplotlib模块的绘图功能. 主要参考于博客:http://blog.csdn.net/ali197294332/article/details/51694141 具体模块导入在最后第7 ...

  6. python matplotlib绘制函数图形_【总结篇】Python matplotlib之使用统计函数绘制简单图形...

    写在前面 作者注:我在这里只总结函数的功能及其用法,程序实例参考链接:link 我们用下面的语句来导入matplotlib库: 1import matplotlib.pyplot as plt 绘制简 ...

  7. 如何用python画函数曲线_Python笔记:用matplotlib绘制函数曲线图

    # 导入相关的包 import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl #%%配置全局绘图参数 #设置 ...

  8. Python matplotlib绘制函数曲线

    画余弦图 import matplotlib.pyplot as plt import math import numpy x=numpy.arange(0.0,2*2*numpy.pi,0.01) ...

  9. matplotlib.pyplot绘制函数图像希腊字母latex效果设置

    matplotlib.pyplot绘制函数图像希腊字母latex效果设置 用matplotlib绘制函数图像时,有时候为了图形的含义更加清晰明了,需要在函数图形的备注上标明函数表达式,此时往往涉及到用 ...

最新文章

  1. js请求结果拦截机器_js利用jquery的jsonp来解决ajax跨域请求被浏览器拦截结果的问题...
  2. CTFshow 命令执行 web118
  3. 电信机房服务器维修,数据中心机房,你不可不知的6大服务保障
  4. html script 放置位置,script标签应该放在HTML哪里,总结分享
  5. css设置按钮竖直方向居中_前端设计师必须知道的10个重要的CSS技巧
  6. nginx重启无法找到PId的解决办法
  7. linux+企业微信+api,概述 - 企业微信API
  8. 服务器端javascript——Rhino和Node
  9. 第三方支付接口现号,第三方支付接口对接,第三方支付接口申请
  10. 基于无线网络的环境监测系统
  11. 手把手教你写网络爬虫:Web应用的漏洞检测实战篇!
  12. 抽象工厂模式之手机主题
  13. 热血江湖网通一服务器不稳定,《热血江湖》网通新服 千呼万唤始出来
  14. 2016.3.18华为上机题:拼音转数字
  15. python初学者入门小项目之一:在 cowpy中增加自己的人物头像
  16. 连接主机名失败但可以连接主机ip,能用ip地址连接却无法用主机名连接,看过来一站解决
  17. Ubuntu18.04LTS安装Nvidia显卡驱动
  18. iOS自动构建以及打包命令(xcodebuild,xcrun)
  19. 数值优化:一阶和二阶优化算法(Pytorch实现)
  20. 基于STM32音频解码MP3——vs1053

热门文章

  1. Open Flash Chart入门二
  2. Hadoop应用案例视频教程
  3. 如何在vmware15上安装linux镜像
  4. 人工智能学习笔记01——数据分析的介绍及环境安装
  5. 【Halcon】halcon中的常用算子的中文说明
  6. 无穷小在袁萌脑海中的第一次闪光
  7. linux的firefox参数,【进阶】Firefox火狐命令行参数
  8. warning MSB8004: Output Directory does not end with a trailing slash.
  9. QCalendarWidget实现某个区间时间凸出显示
  10. 微信公众号最佳实践 ( 8.2)星座运势