【随手记】贴一段matplotlib绘图的多图拼接代码

news2024/10/7 18:26:32

二维:

import numpy as np
import matplotlib.pyplot as plt

pic_names = ["pic1", "pic2", "pic3", "pic4", "pic5", "pic6", "pic7", "pic8", "pic9", "pic10"]

# 生成随机的数据
def generate_pareto_front(num_points=100):
    x = np.random.rand(num_points)
    y = np.random.rand(num_points)
    return x, y

# 创建图形
fig, axs = plt.subplots(3, 4, figsize=(20, 15))

# 遍历基准函数并绘制
for i, name in enumerate(pic_names):
    if i < 8:  # 前8个图
        ax = axs[i // 4, i % 4]
    else:  # 最后两个图
        ax = axs[2, i - 8 + 1]  # 移动到第三行的第2和第3个位置

    # 生成并绘制随机数据
    x, y = generate_pareto_front()
    ax.scatter(x, y, c='b', marker='o')
    ax.set_title(name.upper())
    ax.set_xlabel("f1")
    ax.set_ylabel("f2")

# 删除空白子图
fig.delaxes(axs[2, 0])
fig.delaxes(axs[2, 3])

# 调整布局
plt.tight_layout()
plt.subplots_adjust(wspace=0.3, hspace=0.3)

# 添加统一图例
handles, labels = axs[0, 0].get_legend_handles_labels()
fig.legend(handles, labels, loc='center left', bbox_to_anchor=(0.8, 0.2), ncol=1,prop={'size': 18})

# 显示图形
plt.show()

在这里插入图片描述

三维:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

pic_names = ["pic1", "pic2", "pic3", "pic4", "pic5", "pic6", "pic7", "pic8", "pic9", "pic10"]

# 生成随机的帕累托前沿数据
def generate_pareto_front(num_points=100):
    x = np.random.rand(num_points)
    y = np.random.rand(num_points)
    z = np.random.rand(num_points)
    return x, y, z

# 创建图形
fig = plt.figure(figsize=(20, 15))
gs = fig.add_gridspec(3, 4)

# 遍历基准函数并绘制
for i, name in enumerate(pic_names):
    if i < 8:  # 前两行的8个图像
        ax = fig.add_subplot(gs[i // 4, i % 4], projection='3d')
    elif i == 8:  # 第9个图,居中显示
        ax = fig.add_subplot(gs[2, 1], projection='3d')
    else:  # 第10个图,居中显示
        ax = fig.add_subplot(gs[2, 2], projection='3d')
    
    # 生成并绘制随机数据
    x, y, z = generate_pareto_front()
    ax.scatter(x, y, z, c='b', marker='o')
    ax.set_title(problem_name.upper())
    ax.set_xlabel("f1")
    ax.set_ylabel("f2")
    ax.set_zlabel("f3")
    
    # 设置视角
    ax.view_init(elev=20, azim=20)

# 删除空白子图
fig.delaxes(fig.add_subplot(gs[2, 0]))
fig.delaxes(fig.add_subplot(gs[2, 3]))

# 调整布局
plt.tight_layout()
plt.subplots_adjust(wspace=0.3, hspace=0.3)

# 显示图形
plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代理四川公司疑难商标办理商标异议复审办理

申请商标注册或者办理其他商标事宜&#xff0c;可以自行办理&#xff0c;也可以委托依法设立的商标代理机构办理。外国人或者外国企业在中国申请商标注册和办理其他商标事宜的&#xff0c;应当委托依法设立的商标代理机构办理&#xff0c;按照被代理人的委托办理商标注册申请或…

BEV 中 multi-frame fusion 多侦融合(一)

文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应…

EasyCVR/EasyDSS无人机直播技术助力野生动物监测:开启野生动物保护新篇章

近日有新闻报道&#xff0c;一名挖掘机师傅在清理河道时&#xff0c;意外挖出一只稀有的扬子鳄&#xff0c;挖机师傅小心翼翼地将其放在一边&#xff0c;扬子鳄也顺势游回一旁的河道中。 随着人类对自然环境的不断探索和开发&#xff0c;野生动物及其栖息地的保护显得愈发重要。…

压测怎么做?如何自动化?盘点各大公司全链路压测方案与实践

本文综合盘点各大公司团队的全链路压测技术方案和实践路径&#xff0c;供大家参考。 一、什么是全链路压测&#xff1f; 全链路压测指的是基于实际的生产业务场景、系统环境&#xff0c;模拟海量的用户请求和数据对整个业务链进行压力测试&#xff0c;并持续调优的过程。常用…

PyMuPDF 操作手册 - 01 从PDF中提取文本

文章目录 一、打开文件二、从 PDF 中提取文本2.1 文本基础操作2.2 文本进阶操作2.2.1 从任何文档中提取文本2.2.2 如何将文本提取为 Markdown2.2.3 如何从页面中提取键值对2.2.4 如何从矩形中提取文本2.2.5 如何以自然阅读顺序提取文本2.2.6 如何从文档中提取表格内容2.2.6.1 提…

为啥找对象千万别找大厂男,还好我不是大厂的。。

网上看到一大厂女员工发文说&#xff1a;找对象千万别找大厂男&#xff0c;理由说了一大堆&#xff0c;无非就是大厂男为了逃避带娃&#xff0c;以加班为由宁愿在工位上玩游戏也不愿回家。当然这种观点有的人赞同有的人反对。 网友精彩评论&#xff1a; --------------下面是今…

视频太大了怎么缩小内存

我们在分享视频的时候&#xff0c;有时候会遇到过视频文件太大&#xff0c;无法发送或者上传的情况&#xff0c;别担心&#xff0c;今天我就来给大家分享一个简单有效的方法&#xff0c;让你的视频变得更小&#xff0c;更方便分享&#xff01; 打开 “51视频处理官网 的网站。上…

vue引入aos.js实现滚动动画

aos.js官方网站&#xff1a;http://michalsnik.github.io/aos/ aos.js介绍 AOS (Animate on Scroll) 是一个轻量级的JavaScript库&#xff0c;用于实现当页面元素随着用户滚动进入可视区域时触发动画效果。它不需要依赖 jQuery&#xff0c;可以很容易地与各种Web开发框架&#…

高压线防外破警示灯在电力安全发挥的作用_鼎跃安全

高压输电线路往往跨越城市、乡村和野外&#xff0c;覆盖范围广泛。随着城乡建设和交通运输的快速发展&#xff0c;高压线路周围的活动频繁&#xff0c;外部破坏风险增加。车辆撞击电线杆、施工机械误碰线路以及人为破坏等事件时有发生&#xff0c;严重影响电力供应的稳定性和安…

Linux---rpm/yum包管理器

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.RPM概述 RPM&#xff08;Red Hat Package Manager&#xff09;是Linux中的一种软件包管理格式也可以称为软件包管理器&#xff1b;它可以将软件包以二进制形式打包&#xff0c;并提供工具来安…

记录一个利用winhex进行图片隐写分离的

前提 是一次大比武里面的题目&#xff0c;属实给我开了眼&#xff0c;跟我之前掌握的关于隐写合并的操作都不一样。 它不是直接在文件里面进行输入文件隐写&#xff0c;叫你输入密码&#xff0c;或者更改颜色&#xff0c;或者偏移位置&#xff1b; 它不是单纯几个文件合并&a…

【GD32定时器】高级定时器生成PWM波+定时器外设配置DMA使用

基本定时器和系统时钟配置可以参考以下文章, 文章链接为: 【GD32系列–基本定时器Timer + 定时1ms 灯光间隔1s闪烁例程】 【GD32】_时钟架构及系统时钟频率配置 【GD32】 TIMER通用定时器学习+PWM输出占空比控制LED 目录标题 一 、DMA简介1 DMA 操作2 中断3 DMA 请求映射二、…

sharePoint-基于sharepoint列表中的其他列值自动更新值列

首先进入网站&#xff0c;点击网站内容 点击想要操作的数据表后面的按钮&#xff0c;点击设置 点击创建栏 填写栏名&#xff0c;类型选择计算值&#xff0c;公式用于对列表或库中的值执行计算&#xff0c;然后点击右下角的确定就添加成功了 公式参考&#xff1a; 公式SharePoi…

观察者模式-委托(大话设计模式)C/C++版本

观察者模式-委托 先看该常规的没有委托概念的代码&#xff0c;如下&#xff1a; 非委托 #include <iostream> #include <string> #include <list> using namespace std;class Subject; // 前向声明// 抽象观察者 class Observer { protected:string name;…

上证50etf期权的手续费要多少钱?期权懂分享

今天带你了解上证50etf期权的手续费要多少钱&#xff1f;上证50ETF期权的开户一般交易手续费默认为7元一张。在进行期权开户之前&#xff0c;建议提前联系一名券商的客户经理&#xff0c;协商期权手续费优惠事宜。 上证50etf期权的手续费要多少钱&#xff1f; 上证50ETF期权的…

Spring是如何设计IOC容器的?BeanFactory ApplicationContext

BeanFactory是Spring框架中最底层的接口&#xff0c;用于实例化、配置和管理bean。它使用控制反转&#xff08;IOC&#xff09;模式&#xff0c;将对象的创建、管理和装配的职责从应用程序代码中转移给Spring容器。这样&#xff0c;应用程序代码就无需关心对象如何创建和装配&a…

一篇文章了解常用排序算法

排序 文章目录 排序直接(插入)排序InsertSort思想实现方法&#xff1a; 希尔排序ShellSort&#xff08;可过OJ)思想预排序gap的作用整体代码 选择排序SelectSort思想完整代码 堆排序HeapSort(可过OJ)思想大根堆向下调整 完整代码 冒泡排序BubbleSort快速排序&#xff08;快排&a…

Autodesk Inventor 机械三维设计软件下载安装,Inventor 专业的三维制图软件

Inventor&#xff0c;它的一大亮点在于能够将三维尺寸、标注以及尺寸公差直接融入三维模型中&#xff0c;使得这些关键信息能够无缝对接下游应用&#xff0c;极大地提升了设计流程中的连贯性和一致性。 谈及Inventor的尺寸公差功能&#xff0c;更是让人赞不绝口。在复杂的设计过…

测试:设计测试用例

文章目录 概念设计正交法判定表法 本篇总结的是测试用例的概念和设计方法 概念 测试用例是为了实施测试而向被测试的系统提供的一组集合&#xff0c;这个集合中包含的内容有测试环境&#xff0c;操作步骤&#xff0c;测试数据&#xff0c;预期结果等要素 在测试用例的设计中…

第 54 期:MySQL Too many open files 报错

社区王牌专栏《一问一实验&#xff1a;AI 版》全新改版归来&#xff0c;得到了新老读者们的关注。其中不乏对 ChatDBA 感兴趣的读者前来咨询&#xff0c;表达了想试用体验 ChatDBA 的意愿&#xff0c;对此我们表示感谢 &#x1f91f;。 目前&#xff0c;ChatDBA 还在最后的准备…