光纤LP模式分解

2023-05-16

光纤LP模式分解

10个模式合成后的理想分布图和重建分布图以及残差图

df = pd.DataFrame()
# 设置谱图
cm=plt.cm.get_cmap('Spectral_r')
# 创建画布
fig = plt.figure(figsize=(27, 9))
# 设置样例个数
case_nums = 9
# 设置行文字解释
group_name = ["Measurement", "Reconstructed", "Residual"]
for i in range(case_nums):
    output = outputs[i]
    label = labels[i]
    # 通过反复相位组合找出合适的输出标签(只是相位正负重新组合)
    # findTrueLabel函数表示根据预测标签(幅度系数和相位系数)和测量光强分布,
    # 找出正确的相位组合(幅度不变)使得重建的和测量的分布最大相似
    output = findTrueLabel(label, output)
    
    # 测量的参数
    para = label.tolist()
    alpha_m = para[:split_len]
    beta_m = para[split_len:]
    # 重建的参数
    para = output.tolist()
    alpha_r = para[:split_len]
    beta_r = para[split_len:]
    #beta_r = np.arccos(beta_r)
    
    # 根据参数求出光强分布、相位分布、标签参数
    # init_superposition_mode函数表示根据本征模的幅度系数和相位系数创建模场分布
    I_r, phase_r, label_r = init_superposition_mode(alpha_r, beta_r)
    I_m, phase_m, label_m = init_superposition_mode(alpha_m, beta_m)
    
    # 设置子图对边坐标
    ax1 = fig.add_subplot(3,case_nums,0 + i + 1 )
    ax2 = fig.add_subplot(3,case_nums,1 * case_nums + i + 1 )
    ax3 = fig.add_subplot(3,case_nums,2 * case_nums + i + 1)
    # 画出子图
    cbar1 = ax1.pcolormesh(X, Y, I_m, cmap=cm, vmin=0, vmax=1)
    cbar2 = ax2.pcolormesh(X, Y, I_r, cmap=cm, vmin=0, vmax=1)
    cbar3 = ax3.pcolormesh(X, Y, abs(I_m- I_r),cmap=cm, vmin=0, vmax=1)
    
    # pearsonr函数求分布相似性
    p = pearsonr(I_m, I_r)
    
    # 设置辅助文字解释
    if i == 0:
        ax1.set_ylabel(group_name[0], fontdict = {'size':16})
        ax2.set_ylabel(group_name[1], fontdict = {'size':16})
        ax3.set_ylabel(group_name[2], fontdict = {'size':16})
    ax3.set_xlabel('corr: '+ str(round(p,4)), fontdict = {'size':16})
    
#前面三个子图的总宽度 为 全部宽度的 0.9;剩下的0.1用来放置colorbar
fig.subplots_adjust(right=0.9)

#colorbar 左 下 宽 高 
l = 0.92
b = 0.12
w = 0.015
h = 1 - 2*b 

#对应 l,b,w,h;设置colorbar位置;
rect = [l,b,w,h] 
cbar_ax = fig.add_axes(rect)
cb = plt.colorbar(cbar3,  cax=cbar_ax)

分解效果图和相似性

作图参考链接如下:
matplotlib 合理设置colorbar和子图的对应关系
图示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

光纤LP模式分解 的相关文章

随机推荐

  • ubuntu下使用QMediaPlayer闪退。

    在新装的ubuntu进行移植或者首次安装Qt的编译环境 xff0c 当我们的Qt项目中存在使用QMediaPlayer对象的时候 xff0c 会出现莫名其妙的闪退现象 xff0c 就是找不到什么原因 xff0c qt又没有具体提示 xff0
  • 2022年全新的学习计划-开篇说明

    笔者在广东 xff0c 有7年微软系的开发经验 xff0c 对于C ASP Net SqlServer有丰富的开发经验 xff0c 在公司主要开发中小型的ERP和MES系统 xff0c 另外也根据公司的实际应用场景 xff0c 用过Andr
  • 如何优化Linux服务器性能,让你的网站飞起来

    Linux服务器的性能优化是确保网站稳定 高效运行的重要步骤 以下是一些可以提高Linux服务器性能的方法 xff1a 安装高效的Web服务器 xff1a 选择高效的Web服务器可以显著提高网站性能 例如 xff0c 使用Nginx代替Ap
  • Linux运维必备:Shell脚本编写入门指南

    Shell脚本是Linux运维必备的一项技能 xff0c 它可以自动化执行系统管理和维护任务 本文将提供一个入门指南 xff0c 介绍如何编写Shell脚本 什么是Shell脚本 xff1f Shell脚本是一种用来编写操作系统命令和程序的
  • 实践中Linux网络管理的常见问题和解决方案

    如何配置网络接口 xff1f 使用ifconfig命令配置网络接口 xff0c 例如 xff1a ifconfig eth0 192 168 1 100 netmask 255 255 255 0 up 该命令将配置eth0接口的IP地址
  • 掌控大局:10个拯救生命的Linux命令行技巧

    Top 实例 xff1a 运行 top 命令可以显示当前系统中运行的进程以及它们占用系统资源的情况 xff0c 如 CPU 内存等 top 可以使用如下命令选项 xff1a p xff1a 指定要监控的进程 ID u xff1a 指定要监控
  • Ubuntu to go

    作为一个linux运维人员 xff0c 我很高兴向您推荐Ubuntu to go Ubuntu to go是Ubuntu操作系统的便携式版本 xff0c 与传统的Ubuntu安装相比 xff0c 它更方便携带 xff0c 数据更加安全 xf
  • ubuntu系统崩溃,甚至Recovery模式和tty都无法进入,这个方法可以救援!

    Try Ubuntu介绍 Try Ubuntu 作为一种救援工具 xff0c 有以下几个优势 xff1a 轻量级 xff1a Try Ubuntu 是一个轻量级的Ubuntu环境 xff0c 可以运行在CD DVD或USB驱动器上 这使得它
  • ubuntu系统多网卡,彻底禁用其中一张网卡

    文章目录 使用到的命令ifconfiglshw C network禁止加载网卡驱动 linux网卡操作命令汇总 使用到的命令 ifconfig span class token function ifconfig span ifconfig
  • 教你如何编写ubuntu换国内源最简单的shell小脚本,包含完整源码!

    文章目录 x1f4e2 函数 x1f4e2 交互式菜单选择结构 x1f4e2 流程控制结构 文章底部有完整的源码下载 xff0c 初学者可以了解学习函数 交互式菜单选择结构 流程控制结构的用法 x1f4e2 函数 可以不用function关
  • 【linux运维】常用命令,使用ubuntu你必须懂这些命令【二】

    文章目录 ls xff1a 查看当前目录下的文件和文件夹cd xff1a 切换目录rm xff1a 删除文件或目录cp xff1a 复制文件或目录mv xff1a 移动文件或目录cat xff1a 显示文件内容grep xff1a 在文件中
  • 【linux运维】常用命令,使用ubuntu你必须懂这些命令【一】

    文章目录 pwd xff1a 显示当前目录的路径mkdir xff1a 创建新目录top xff1a 显示当前系统的运行情况ping xff1a 测试网络连接ifconfig xff1a 查看网络配置ssh xff1a 远程登录到另一台计算
  • 腾讯云服务器Ubuntu-配置mysql,nginx,nodejs

    趁着618腾讯云服务器的促销活动 xff0c 笔者买了最低配置的云服务器 xff0c 用作学习 接上一篇文章的内容 xff0c 系统方面选择了Ubuntu xff0c 版本是20 04 LTS 选择Ubuntu的原因 xff0c 主要是因为
  • Code-Server安装

    前情提示 请提前在linux上安装好Python3环境 安装方法参照我之前的文章 建议不同的开发空间用不同的虚拟环境 下一篇文章我会讲怎么配置 在此声明 xff1a 我的博客内容都是通过百度 xff0c 谷歌查询 xff0c 再加以总结 x
  • 史上最牛mysql-06 (多表连接)

    多表连接 个人博客 xff1a www xiaobeigua icu 多表查询 xff0c 也称为关联查询 xff0c 指两个或更多个表一起完成查询操作 前提条件 xff1a 这些一起查询的表之间是有关系的 xff08 一对一 一对多 xf
  • ESP8266(ESP-07S)学习日志第一篇——烧写官网的AT固件

    烧写官方固件库的方法 第一步 xff1a 认识一下ESP 07S ESP 07S是ESP8266的一个型号 xff0c 内置一个32Mbit的SPI Flash xff0c 共有9个IO口 一般的8266最小系统的搭建如下图所示 xff1a
  • kolla-ansible在ubuntu部署openstack

    使用kolla ansible部署一个openstack victoria版集群 xff0c 然后对接ceph存储 环境规划 使用5台虚拟机 xff0c 详细信息如下 角色主机名规格IP系统控制节点 43 部署机 43 docker reg
  • PIL实现对图片的圆形区域截取处理

    代码示例 span class token keyword from span PIL span class token keyword import span Image span class token keyword import s
  • WampServer安装教程

    一 从网上下载WampServer 自己百度搜 我的版本是3 0 6 x64 或者下载我的版本 链接 xff1a https pan baidu com s 1 wjFxORbonWdcEh3iQWgFA 提取码 xff1a 499y 二
  • 光纤LP模式分解

    光纤LP模式分解 10个模式合成后的理想分布图和重建分布图以及残差图 df span class token operator 61 span pd span class token punctuation span DataFrame s