今天来简单介绍一个如何用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 绘制高斯曲面图相关推荐

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

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

  2. python绘制三维曲面图-Python中使用Matplotlib绘制3D图形示例

    原标题:Python中使用Matplotlib绘制3D图形示例 3D图形能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的3D绘图工具.3D图形在数据分析.数据建模. ...

  3. Python 绘制圆柱体(3D图)

    Python 绘制圆柱体(3D图) 不知道为何,介绍用Python画3D图形,很少提到圆锥体.圆柱体.或者是有些工具可以直接画出吧. 在上一篇文章中解决了圆锥体的问题(见下链接),现在把圆柱体问题也一 ...

  4. 示例代码-Matlab绘制高斯分布曲面图(1)

    高斯分布 \quad在数据建模时,经常会用到高斯分布模型[1,2],下面我们就使用Matlab来绘制高斯分布曲面. \quad另一种画法可参考:示例代码-Matlab绘制高斯分布曲面图(2). 1. ...

  5. python画动图-Python绘制动态水球图过程详解

    先来看看绘制的动态水球图: 没有安装PyEcharts的,先安装PyEcharts: # 安装pyecharts模块,直接安装就是最新的版本pip install pyecharts 安装好PyEch ...

  6. python画折线图显示点值-Python 绘制可视化折线图

    1. 用 Numpy ndarray 作为数据传入 ply import numpy as np import matplotlib as mpl import matplotlib.pyplot a ...

  7. python画折线图代码-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  8. python绘制雷达图代码实例-使用python绘制温度变化雷达图

    本文实例为大家分享了python绘制温度变化雷达图的具体代码,供大家参考,具体内容如下 假设某天某地每三个小时取样的气温为 针对温度变化趋势绘制雷达图: 代码如下: import numpy as n ...

  9. python画折线图详解-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

最新文章

  1. 全国“最高”的视觉竞赛,华为Atlas打通遥感图像智能分析任督二脉
  2. 云原生架构下日志服务数据预处理
  3. 为 Angular service 注册 provider 的三种方式
  4. foursquare nyc数据集_炫酷的python地理数据可视化
  5. [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
  6. 剑指Offer - 面试题62. 圆圈中最后剩下的数字(约瑟夫环 递推公式)
  7. Mac jupyter 绘制matplotlib图像解决中文空格的问题
  8. python编程100例-python100例,python经典例题
  9. java stax_XML编程总结(五)——使用StAX接口操作xml
  10. 父子组件如何实现通信
  11. Java冒泡排序法 降序
  12. 【渝粤题库】陕西师范大学201041德育论 作业(专升本)
  13. 计算机面试专业英语词汇,英语面试中常用高频词汇
  14. Javascript复习必记知识点
  15. MPP 与 Hadoop是什么关系?
  16. 多城市二手车买卖发布管理小程序开发
  17. 冒泡排序+快速排序+选择排序(图解)
  18. matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现
  19. AI的故事:半人马的诞生之路
  20. HDU3003 Pupu,快速幂取模

热门文章

  1. 念数字 字符串操作系列2
  2. Python中datetime.timedelta的应用
  3. 物联网发展面临哪些问题
  4. 饥荒计算机丢失xinput1 3.dll,【已解决】“由于找不到xinput1_3.dll,无法继续执行代码”...
  5. 给Date日期加上时分秒
  6. Win10家庭版 开启Hyper-V
  7. PPT怎么转换成Word文档?分享两种转换小妙招
  8. Android的IPC
  9. Android Studio连接安卓手机驱动
  10. 求英国帝国理工学院的iFR研究算法代码