简 介: 绘制二维函数的3D曲面图可以帮助我们更好理解函数内所蕴含的规律。Axes3D是matplotlib中的绘制函数。利用surface, countour,countourf等可以很好的显示函数3D内容。

关键词Axes3DsurfacecontourII

#mermaid-svg-IaYQugkUqhqtOgcj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .error-icon{fill:#552222;}#mermaid-svg-IaYQugkUqhqtOgcj .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-IaYQugkUqhqtOgcj .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-IaYQugkUqhqtOgcj .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-IaYQugkUqhqtOgcj .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-IaYQugkUqhqtOgcj .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-IaYQugkUqhqtOgcj .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-IaYQugkUqhqtOgcj .marker{fill:#333333;stroke:#333333;}#mermaid-svg-IaYQugkUqhqtOgcj .marker.cross{stroke:#333333;}#mermaid-svg-IaYQugkUqhqtOgcj svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-IaYQugkUqhqtOgcj .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .cluster-label text{fill:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .cluster-label span{color:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .label text,#mermaid-svg-IaYQugkUqhqtOgcj span{fill:#333;color:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .node rect,#mermaid-svg-IaYQugkUqhqtOgcj .node circle,#mermaid-svg-IaYQugkUqhqtOgcj .node ellipse,#mermaid-svg-IaYQugkUqhqtOgcj .node polygon,#mermaid-svg-IaYQugkUqhqtOgcj .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-IaYQugkUqhqtOgcj .node .label{text-align:center;}#mermaid-svg-IaYQugkUqhqtOgcj .node.clickable{cursor:pointer;}#mermaid-svg-IaYQugkUqhqtOgcj .arrowheadPath{fill:#333333;}#mermaid-svg-IaYQugkUqhqtOgcj .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-IaYQugkUqhqtOgcj .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-IaYQugkUqhqtOgcj .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-IaYQugkUqhqtOgcj .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-IaYQugkUqhqtOgcj .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-IaYQugkUqhqtOgcj .cluster text{fill:#333;}#mermaid-svg-IaYQugkUqhqtOgcj .cluster span{color:#333;}#mermaid-svg-IaYQugkUqhqtOgcj div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-IaYQugkUqhqtOgcj :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

绘制曲面
目 录
Contents
绘制举例
颜色参数
更多举例
电阻组合
二维非线性函数
总 结

§01 绘制曲面


  很多时候需要绘制三维曲面,比如绘制二维函数取值,优化问题在二维上的切片投影等。通过 绘制分类界面以及性能曲面中的meshgrid函数 或者二维的格点,经过计算可以通过surface, contour等函数绘制三维曲面和等高线。

一、绘制举例

1、测试代码

from headm import *                 #from mpl_toolkits.mplot3d import Axes3Dx = arange(-4, 4, 0.1)
y = arange(-4, 4, 0.1)
x,y = meshgrid(x, y)
r = sqrt(x**2+y**2)
z = sin(r)printt(z.shape\)ax = Axes3D(plt.figure(figsize=(12,8)))
ax.plot_surface(x,y,z,rstride=1, cstride=2, cmap=plt.cm.hot)
ax.contour(x,y,z,zdir='z',offset=-2,cmap=plt.cm.hot)ax.set_zlim(-2,2)
plt.show()

2、测试结果

▲ 图1.1.1 绘制出的z三维函数

z.shape:(80, 80)

二、颜色参数

Python可视化|matplotlib07-自带颜色条Colormap(三) 给出了 cmap的各种组合。

1、颜色名称

['Accent', 'Blues', 'BrBG', 'BuGn', 'BuPu', 'CMRmap', 'Dark2', 'GnBu', 'Greens', 'Greys', 'OrRd', 'Oranges', 'PRGn', 'Paired', 'Pastel1', 'Pastel2', 'PiYG', 'PuBu', 'PuBuGn', 'PuOr', 'PuRd', 'Purples', 'RdBu', 'RdGy', 'RdPu', 'RdYlBu', 'RdYlGn', 'Reds', 'Set1', 'Set2', 'Set3', 'Spectral', 'Wistia', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd', 'afmhot', 'autumn', 'binary', 'bone', 'brg', 'bwr', 'cividis', 'cool', 'coolwarm', 'copper', 'cubehelix', 'flag', 'gist_earth', 'gist_gray', 'gist_heat', 'gist_ncar', 'gist_stern', 'gist_yarg', 'gnuplot', 'gnuplot2', 'gray', 'hot', 'hsv', 'inferno', 'jet', 'magma', 'nipy_spectral', 'ocean', 'pink', 'plasma', 'prism', 'rainbow', 'seismic', 'spring', 'summer', 'tab10', 'tab20', 'tab20b', 'tab20c', 'terrain', 'twilight', 'twilight_shifted', 'viridis', 'winter']

▲ 图1.2.1 colormap中的颜色

2、改变颜色

ax.plot_surface(x,y,z,rstride=1, cstride=2, cmap=plt.cm.Blues)
ax.contourf(x,y,z,zdir='z',offset=-2,cmap=plt.cm.BuGn)

▲ 图1.2.2 改变颜色后的高度图

§02 更多举例


一、电阻组合

  在 通过一个端口读取多个按钮 搜索了多个电阻并联开关的时候,对应的最大电压间隔。可以看到其中峰值非常复杂。下面对于两个电阻组合进行搜索,绘制性能曲面。

1、搜索代码

R0                     = 1e3
U0                     = 3.3
def minVoltage(r1,r2):rdim = [10e10, r1, r2,1/(1/r1 + 1/r2)]vdim = sorted([r/(r+R0)*U0 for r in rdim])vdiff = [b-a for a,b in zip(vdim[:-1], vdim[1:])]vdiff.append(vdim[0])return min(vdiff)STEP_NUM        = 50
x = arange(100, 10000, STEP_NUM)
y = arange(100, 10000, STEP_NUM)
x,y = meshgrid(x, y)z = array([minVoltage(x,y) for x,y in zip(x.flatten(), y.flatten())]).reshape(x.shape)

2、搜索结果

(1)搜索范围:100:10000:50

▲ 图2.1.1 搜索R1,R2的性能曲线

(2)搜索范围:500:3000:10

▲ 图2.1.2 搜索R1,R2性能曲线

(3)搜索范围:500:4000:10

▲ 图2.1.3 搜索R1,R2性能曲线

3、切片到一维

R1 = 4e3
R2 = linspace(0, 10000, 10000)
z = [minVoltage(R1, r2) for r2 in R2]
plt.clf()
plt.figure(figsize=(12,8))
plt.plot(R2, z)
plt.xlabel("R2")
plt.ylabel("Z")
plt.grid(True)
plt.tight_layout()

▲ 图2.1.4 R2对应的最大电压

二、二维非线性函数

f=104x12−2.1x14+13x16+x1x2−4x22+4x22+2f = {{10} \over {4x_1^2 - 2.1x_1^4 + {1 \over 3}x_1^6 + x_1 x_2 - 4x_2^2 + 4x_2^2 + 2}}f=4x12​−2.1x14​+31​x16​+x1​x2​−4x22​+4x22​+210​

x = arange(-4, 4, 0.1)
y = arange(-2, 2, 0.1)
x,y = meshgrid(x,y)
z = 10/(4*x**2 - 2.1*x**4 + x**6/3 + x*y - 4*y**2+4*y**4 + 2)print(z.shape)ax = Axes3D(plt.figure(figsize=(12,8)))
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=plt.cm.Blues)plt.show()

▲ 图2.2.1 绘制的3D图像

※ 总  结 ※


  绘制二维函数的3D曲面图可以帮助我们更好理解函数内所蕴含的规律。Axes3D是matplotlib中的绘制函数。利用surface, countour,countourf等可以很好的显示函数3D内容。


■ 相关文献链接:

  • 绘制分类界面以及性能曲面中的meshgrid函数
  • Python可视化|matplotlib07-自带颜色条Colormap(三)
  • 通过一个端口读取多个按钮

● 相关图表链接:

  • 图1.1.1 绘制出的z三维函数
  • 图1.2.1 colormap中的颜色
  • 图1.2.2 改变颜色后的高度图
  • 图2.1.1 搜索R1,R2的性能曲线
  • 图2.1.2 搜索R1,R2性能曲线
  • 图2.1.3 搜索R1,R2性能曲线
  • 图2.1.4 R2对应的最大电压
  • 图2.2.1 绘制的3D图像

利用Axes3D绘制三维性能曲面相关推荐

  1. matlab rgb三维直方图,MATLAB小技巧之十:利用MATLAB绘制三维彩色柱状图[转载]

    MATLAB自带有绘制三维柱状图的函数bar3,有版友反映不好控制柱子的颜色,特别是bar3不能绘制渐变色的柱子,并且bar3不能根据用户指定的散点数据绘制柱状图.为此,我编写了一个函数(scatte ...

  2. matlab矩阵画柱状三维,[原创]利用MATLAB绘制三维彩色柱状图

    function scatterbar(x,y,z,scale) %   根据散点数据绘制3维彩色柱状图 %   scatterbar(x,y,z,scale)  x,y,z是实值数组,用来指定柱子顶 ...

  3. Python绘制三维立体图详解与绘图填充

    1.利用Python绘制三维图 目标: 绘制图像 z^2 = x^2 + y^2 + x/3 + y/3 1.第一步我们先导入画图所需要的包: import matplotlib.pyplot as ...

  4. Python绘制三维图详解

    利用Python绘制三维图 目标: 绘制图像z2=x2+y2z^2 = x^2 + y^2z2=x2+y2 import matplotlib.pyplot as plt import numpy a ...

  5. 如何利用MATLAB函数绘制三维曲面?系统学习MATLAB三维曲面的绘制

    文章目录 0 前言 1 平面网格数据的生成 2 绘制三维曲面的函数 2.1 mesh函数和surf函数的一般召唤方式 2.2 其他召唤方式 2.3 mesh.surf函数的亲戚朋友 3.标准三维曲面 ...

  6. Python——根据散点数据绘制三维曲面图( meshgrid函数以及Axes3D [plot_surface] )

    1.初始散点数据处理成xy网格数据 import numpy as np x = np.arange(-2, 2, 0.025) y = np.arange(-2, 2, 0.025) x, y = ...

  7. python绘制三维散点图-python 画三维图像 曲面图和散点图的示例

    用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits. ...

  8. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  9. MATLAB绘制三维曲面图和等高线 绘图(2)

    绘制三维曲面图步骤: 1): 对数据进行处理,得到三维曲面上的点坐标组 方法有: 1.将自变量离散, x=xmin:dx:xmax y=ymin:dy:ymax 2.利用meshgrid 指令 生成 ...

最新文章

  1. 3.5.1 信道划分介质访问控制
  2. ORA-600(qerltcInsertSelectRop_bad_state)错误
  3. 树莓派+百度api实现人脸识别
  4. Visual Studio 的键盘快捷方式
  5. Spring@Cacheable注解在类内部调用失效的问题
  6. 电脑无法连接到系统服务器,请问怎么客户端的电脑连接不到服务器?这是什么原因?...
  7. android gpio驱动实例,安卓gpio操作示例
  8. python3 TypeError: 'str' does not support the buffer interface in python
  9. mysql 短信发送情况检查
  10. 大神总结的机器学习的数学基础,掌握这些足够
  11. EXCEL同一个界面下打开两个表格比较
  12. Java 常见的面试题(反射)
  13. leetcode第12题Python版整数转罗马字符串
  14. 制作网页中弹出对话框的制作
  15. 浙大玉泉校区路由器L2TP设置(极路由1s)
  16. 声音莫名从扬声器切换到听筒_扬声器听筒的切换
  17. 什么是Automata(I): Web 3.0的最后一块拼图
  18. 【CVE-2021-1675】Windows Print Spooler RCE
  19. 如何将.keystore 文件转成.key文件
  20. 英文名称来源 男英文名 女英文名

热门文章

  1. 生产场景 bond 0实战
  2. Sharepoint ListTemplateId
  3. PowerShell 6.2 PSCommandNotFoundSuggestion
  4. Kubernetes(K8s)容器设计模式实践案例 – 分散收集模式
  5. 博客园博客账号意外被封怎么办?
  6. mysqldump命令详解(转载)
  7. 玩玩TCPCOPY+ intercept+mysql-replay-module(未成功)
  8. html5 Web Workers
  9. tornado简单实现restful接口2
  10. mapreduce介绍