Python 绘制高斯曲面图
今天来简单介绍一个如何用python
绘制高斯分布三维分布的曲面图。
我们知道高斯分布的二维表达式为:
Gaussian=exp−(x2+y2)w02.Gaussian =\exp{\frac{-(x^{2} + y^{2})}{w_0^{2}}} \,. Gaussian=expw02−(x2+y2).
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Dx = np.linspace(-3, 3, 1000)
y = np.linspace(-3, 3, 1000)
x, y = np.meshgrid(x, y)
w0 = 1
gaussian = np.exp(-((pow(x, 2) + pow(y, 2)) / pow(w0, 2)))# 二维面振幅分布图
plt.figure()
plt.imshow(gaussian)# 三维曲面振幅分布图
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(x, y, gaussian, cmap='jet')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
下图对应高斯二维面振幅分布图。
图二为高斯三维曲面振幅分布图。
事实上如果我们以俯视图查看图二,我们会得到和图一相同的结果。俯视图如下:
至此,高斯光的绘制已经实现了。
拓展:对于学习光学专业的人来说,上述绘制高斯分布也许并不十分完美,因为通常光学中更看重光强的分布状态,显然上述的分布状态的对比度并不完美。这时我们可以简单的设定plt.imshow()
函数中的参数cmap="hot"
来获取更加完美的高斯强度分布。
上面说到了强度分布,有些小伙伴可能会觉得不解,毕竟我们一开始给出的公式是高斯光振幅的表达式。因此这里做一下简单的说明。特别说明:虽然最开始我们给出的公式是振幅的表达式的,但是因为振幅的模的平方就是强度。所以我们也可以认为振幅代表了高斯光的强度分布。
代码如下:
import numpy as np
import matplotlib.pyplot as pltx = np.linspace(-3, 3, 1000)
y = np.linspace(-3, 3, 1000)
x, y = np.meshgrid(x, y)
w0 = 1
gaussian = np.exp(-((pow(x, 2) + pow(y, 2)) / pow(w0, 2)))# 二维面振幅分布图
plt.figure()
plt.imshow(gaussian, cmap="hot")
plt.show()
运行后得到的图像结果如下:
至此,高斯光的绘制已经完美地实现了。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
Python 绘制高斯曲面图相关推荐
- python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- python绘制三维曲面图-Python中使用Matplotlib绘制3D图形示例
原标题:Python中使用Matplotlib绘制3D图形示例 3D图形能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的3D绘图工具.3D图形在数据分析.数据建模. ...
- Python 绘制圆柱体(3D图)
Python 绘制圆柱体(3D图) 不知道为何,介绍用Python画3D图形,很少提到圆锥体.圆柱体.或者是有些工具可以直接画出吧. 在上一篇文章中解决了圆锥体的问题(见下链接),现在把圆柱体问题也一 ...
- 示例代码-Matlab绘制高斯分布曲面图(1)
高斯分布 \quad在数据建模时,经常会用到高斯分布模型[1,2],下面我们就使用Matlab来绘制高斯分布曲面. \quad另一种画法可参考:示例代码-Matlab绘制高斯分布曲面图(2). 1. ...
- python画动图-Python绘制动态水球图过程详解
先来看看绘制的动态水球图: 没有安装PyEcharts的,先安装PyEcharts: # 安装pyecharts模块,直接安装就是最新的版本pip install pyecharts 安装好PyEch ...
- python画折线图显示点值-Python 绘制可视化折线图
1. 用 Numpy ndarray 作为数据传入 ply import numpy as np import matplotlib as mpl import matplotlib.pyplot a ...
- python画折线图代码-python绘制简单折线图代码示例
1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...
- python绘制雷达图代码实例-使用python绘制温度变化雷达图
本文实例为大家分享了python绘制温度变化雷达图的具体代码,供大家参考,具体内容如下 假设某天某地每三个小时取样的气温为 针对温度变化趋势绘制雷达图: 代码如下: import numpy as n ...
- python画折线图详解-python绘制简单折线图代码示例
1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...
最新文章
- 全国“最高”的视觉竞赛,华为Atlas打通遥感图像智能分析任督二脉
- 云原生架构下日志服务数据预处理
- 为 Angular service 注册 provider 的三种方式
- foursquare nyc数据集_炫酷的python地理数据可视化
- [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
- 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)
- Mac jupyter 绘制matplotlib图像解决中文空格的问题
- python编程100例-python100例,python经典例题
- java stax_XML编程总结(五)——使用StAX接口操作xml
- 父子组件如何实现通信
- Java冒泡排序法 降序
- 【渝粤题库】陕西师范大学201041德育论 作业(专升本)
- 计算机面试专业英语词汇,英语面试中常用高频词汇
- Javascript复习必记知识点
- MPP 与 Hadoop是什么关系?
- 多城市二手车买卖发布管理小程序开发
- 冒泡排序+快速排序+选择排序(图解)
- matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现
- AI的故事:半人马的诞生之路
- HDU3003 Pupu,快速幂取模
热门文章
- 念数字 字符串操作系列2
- Python中datetime.timedelta的应用
- 物联网发展面临哪些问题
- 饥荒计算机丢失xinput1 3.dll,【已解决】“由于找不到xinput1_3.dll,无法继续执行代码”...
- 给Date日期加上时分秒
- Win10家庭版 开启Hyper-V
- PPT怎么转换成Word文档?分享两种转换小妙招
- Android的IPC
- Android Studio连接安卓手机驱动
- 求英国帝国理工学院的iFR研究算法代码