【数学建模相关】matplotlib画多个子图(散点图为例 左右对照画图)

@

例题

乙醇偶合制备 C4 烯烃

C4 烯烃广泛应用于化工产品及医药的生产,乙醇是生产制备 C4 烯烃的原料。

在制备过程中,催化剂组合(即:Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度
的组合)与温度对 C4 烯烃的选择性和 C4 烯烃收率将产生影响(名词解释见附录)。
因此通过对催化剂组合设计,探索乙醇催化偶合制备 C4 烯烃的工艺条件具有非常
重要的意义和价值。

某化工实验室针对不同催化剂在不同温度下做了一系列实验,结果如附件 1 和
附件 2 所示。请通过数学建模完成下列问题:

(1) 对附件 1 中每种催化剂组合,分别研究乙醇转化率、C4 烯烃的选择性与温
度的关系,并对附件 2 中 350 度时给定的催化剂组合在一次实验不同时间的测试结
果进行分析。

(2) 探讨不同催化剂组合及温度对乙醇转化率以及 C4 烯烃选择性大小的影响。

(3) 如何选择催化剂组合与温度,使得在相同实验条件下 C4 烯烃收率尽可能
高。若使温度低于 350 度,又如何选择催化剂组合与温度,使得 C4 烯烃收率尽可
能高。

(4) 如果允许再增加 5 次实验,应如何设计,并给出详细理由。

例图

【数学建模相关】matplotlib画多个子图(散点图为例 左右对照画图)
【数学建模相关】matplotlib画多个子图(散点图为例 左右对照画图)

代码展示

-*- codeing = utf-8 -*-
@Time : 2021/9/11  20:45
@Author : slience_me
@File : LS_9_11_1.py
@Software : 数学建模
- * - coding: utf - 8 -*-

import matplotlib.pyplot as plt
import numpy as np
import pylab as pl
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['FangSong']
mpl.rcParams['axes.unicode_minus'] = False

def func_Ls1(X_list, Y_list, Y_list_, label_list, y_label, title_list):
    def draw():
        plt.figure(figsize=(10, 24), dpi=80)
        num = 0
        for i in range(1, 29):
            print(num)
            if i % 2 == 0:
                fig1 = pl.subplot(14, 2, i)
                pl.scatter(X_list[num], Y_list[num], color="b", label="Point", linewidth=3)  # 画样本点
                plt.xlabel("温度变化")
                plt.ylabel("{}".format(y_label[1]))
                plt.title("{}".format(label_list[num] + "  " + title_list[num]))
                plt.legend()
                num += 1
                print("绘制图{}".format(i))
            else:
                fig2 = pl.subplot(14, 2, i)
                pl.scatter(X_list[num], Y_list_[num], color="r", label="Point", linewidth=3)  # 画样本点
                plt.xlabel("温度变化")
                plt.ylabel("{}".format(y_label[0]))
                plt.title("{}".format(label_list[num] + "  " + title_list[num]))
                plt.legend()
                print("绘制图{}".format(i))
        pl.tight_layout()  # 布局方法
        pl.show()  # 显示方法

    draw()

def func_Ls2(X_list, Y_list, Y_list_, label_list, y_label, title_list):
    def draw():
        plt.figure(figsize=(10, 24), dpi=80)
        num = 0
        for i in range(1, 15):
            print(num)
            if i % 2 == 0:
                fig1 = pl.subplot(7, 2, i)
                pl.scatter(X_list[num], Y_list[num], color="b", label="Point", linewidth=3)  # 画样本点
                plt.xlabel("温度变化")
                plt.ylabel("{}".format(y_label[1]))
                plt.title("{}".format(label_list[num] + "  " + title_list[num]))
                plt.legend()
                num += 1
                print("绘制图{}".format(i))
            else:
                fig2 = pl.subplot(7, 2, i)
                pl.scatter(X_list[num], Y_list_[num], color="r", label="Point", linewidth=3)  # 画样本点
                plt.xlabel("温度变化")
                plt.ylabel("{}".format(y_label[0]))
                plt.title("{}".format(label_list[num] + "  " + title_list[num]))
                plt.legend()
                print("绘制图{}".format(i))

        pl.tight_layout()  # 布局方法
        pl.show()  # 显示方法

    draw()

x_A1 = np.array([250, 275, 300, 325, 350])
y_A1_1 = np.array([2.07, 5.85, 14.97, 19.68, 36.80])
y_A1_2 = np.array([34.05, 37.43, 46.94, 49.7, 47.21])

x_A2 = np.array([250, 275, 300, 325, 350])
y_A2_1 = np.array([4.60, 17.20, 38.92, 56.38, 67.88])
y_A2_2 = np.array([18.07, 17.28, 19.6, 30.62, 39.1])

x_A3 = np.array([250, 275, 300, 325, 350, 400, 450])
y_A3_1 = np.array([9.7, 19.2, 29.3, 37.6, 48.9, 83.7, 86.4])
y_A3_2 = np.array([5.5, 8.04, 17.01, 28.72, 36.85, 53.43, 49.9])

x_A4 = np.array([250, 275, 300, 325, 350, 400])
y_A4_1 = np.array([4.0, 12.1, 29.5, 43.3, 60.5, 88.4])
y_A4_2 = np.array([9.62, 8.62, 10.72, 18.89, 27.25, 41.02])

x_A5 = np.array([250, 275, 300, 325, 350, 400])
y_A5_1 = np.array([14.8, 12.4, 20.8, 28.3, 36.8, 76.0])
y_A5_2 = np.array([1.96, 6.65, 10.12, 13.86, 18.75, 38.23])

x_A6 = np.array([250, 275, 300, 350, 400])
y_A6_1 = np.array([13.4, 12.8, 25.5, 55.8, 83.3])
y_A6_2 = np.array([3.3, 7.1, 7.18, 10.65, 37.33])

x_A7 = np.array([250, 275, 300, 350, 400])
y_A7_1 = np.array([19.7, 29.0, 40.0, 58.6, 76.0])
y_A7_2 = np.array([5.75, 6.56, 8.84, 18.64, 33.25])

x_A8 = np.array([250, 275, 300, 350, 400])
y_A8_1 = np.array([6.3, 8.8, 13.2, 31.7, 56.1])
y_A8_2 = np.array([5.63, 8.52, 13.82, 25.89, 41.42])

x_A9 = np.array([250, 275, 300, 350, 400])
y_A9_1 = np.array([2.1, 3.0, 4.7, 13.4, 40.8])
y_A9_2 = np.array([5.4, 9.68, 16.1, 31.04, 42.04])

x_A10 = np.array([250, 275, 300, 350, 400])
y_A10_1 = np.array([0.3, 1.0, 1.7, 9.0, 28.6])
y_A10_2 = np.array([2.19, 1.65, 2.17, 3.3, 10.29])

x_A11 = np.array([250, 275, 300, 350, 400])
y_A11_1 = np.array([0.2, 0.5, 1.6, 8.2, 32.6])
y_A11_2 = np.array([0.1, 1, 1.82, 4.35, 7.93])

x_A12 = np.array([250, 275, 300, 350, 400])
y_A12_1 = np.array([1.4, 3.5, 6.9, 19.9, 44.5])
y_A12_2 = np.array([6.17, 8.11, 11.22, 22.26, 36.3])

x_A13 = np.array([250, 275, 300, 350, 400])
y_A13_1 = np.array([1.3, 2.3, 4.1, 14.6, 40.0])
y_A13_2 = np.array([5.19, 7.62, 12.74, 23.46, 27.91])

x_A14 = np.array([250, 275, 300, 350, 400])
y_A14_1 = np.array([2.5, 5.3, 10.2, 24.0, 53.6])
y_A14_2 = np.array([1.89, 2.55, 3.61, 10.83, 22.3])

x_B1 = np.array([250, 275, 300, 350, 400])
y_B1_1 = np.array([1.4, 3.4, 6.7, 19.3, 43.6])
y_B1_2 = np.array([6.32, 8.25, 12.28, 25.97, 41.08])

x_B2 = np.array([250, 275, 300, 350, 400])
y_B2_1 = np.array([2.8, 4.4, 6.2, 16.2, 45.1])
y_B2_2 = np.array([3.26, 4.97, 9.32, 22.88, 38.7])

x_B3 = np.array([250, 275, 300, 325, 350, 400])
y_B3_1 = np.array([0.4, 0.6, 1.1, 3.3, 6.0, 21.1])
y_B3_2 = np.array([2.85, 5.35, 7.61, 7.74, 13.81, 21.21])

x_B4 = np.array([250, 275, 300, 325, 350, 400])
y_B4_1 = np.array([0.5, 1.1, 3.0, 6.1, 9.6, 33.5])
y_B4_2 = np.array([6.62, 6.62, 5.05, 8.33, 13.1, 21.45])

x_B5 = np.array([250, 275, 300, 325, 350, 400])
y_B5_1 = np.array([2.1, 3.8, 5.8, 9.8, 15.9, 45.0])
y_B5_2 = np.array([4.3, 5.06, 7.92, 11.69, 15.34, 25.83])

x_B6 = np.array([250, 275, 300, 325, 350, 400])
y_B6_1 = np.array([2.8, 7.5, 12.6, 15.9, 27.0, 63.2])
y_B6_2 = np.array([4.5, 4.79, 8.77, 16.06, 22.41, 30.48])

x_B7 = np.array([250, 275, 300, 325, 350, 400])
y_B7_1 = np.array([4.4, 7.9, 11.7, 17.8, 30.2, 69.4])
y_B7_2 = np.array([4.08, 6.62, 12.86, 18.45, 25.05, 38.17])

X_list = [x_A1, x_A2, x_A3, x_A4, x_A5, x_A6, x_A7, x_A8, x_A9, x_A10, x_A11, x_A12, x_A13, x_A14]
X_list_ = [x_B1, x_B2, x_B3, x_B4, x_B5, x_B6, x_B7]

Y_list = [y_A1_1, y_A2_1, y_A3_1, y_A4_1, y_A5_1, y_A6_1, y_A7_1, y_A8_1, y_A9_1, y_A10_1, y_A11_1, y_A12_1, y_A13_1,
          y_A14_1]
Y_list_ = [y_A1_2, y_A2_2, y_A3_2, y_A4_2, y_A5_2, y_A6_2, y_A7_2, y_A8_2, y_A9_2, y_A10_2, y_A11_2, y_A12_2, y_A13_2,
           y_A14_2]
Y_list__ = [y_B1_1, y_B2_1, y_B3_1, y_B4_1, y_B5_1, y_B6_1, y_B7_1]
Y_list___ = [y_B1_2, y_B2_2, y_B3_2, y_B4_2, y_B5_2, y_B6_2, y_B7_2]

label_list = ["A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14"]
label_list_ = ["B1", "B2", "B3", "B4", "B5", "B6", "B7"]

title_list = ["200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min",
              "200mg 2wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min",
              "200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度0.9ml/min",
              "200mg 0.5wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min",
              "200mg 2wt%Co/SiO2- 200mg HAP-乙醇浓度0.3ml/min",
              "200mg 5wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/min",
              "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度0.3ml/min",
              "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度0.9ml/min",
              "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度2.1ml/min",
              "50mg 5wt%Co/SiO2- 50mg HAP-乙醇浓度2.1ml/min",
              "50mg 1wt%Co/SiO2+ 90mg石英砂-乙醇浓度1.68ml/min,无HAP",
              "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度1.68ml/min",
              "67mg 1wt%Co/SiO2- 33mg HAP-乙醇浓度1.68ml/min",
              "33mg 1wt%Co/SiO2- 67mg HAP-乙醇浓度1.68ml/min"
              ]

title_list_ = [
    "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度1.68ml/min",
    "100mg 1wt%Co/SiO2- 100mg HAP-乙醇浓度1.68ml/min",
    "10mg 1wt%Co/SiO2- 10mg HAP-乙醇浓度1.68ml/min",
    "25mg 1wt%Co/SiO2- 25mg HAP-乙醇浓度1.68ml/min",
    "50mg 1wt%Co/SiO2- 50mg HAP-乙醇浓度2.1ml/min",
    "75mg 1wt%Co/SiO2- 75mg HAP-乙醇浓度1.68ml/min",
    "100mg 1wt%Co/SiO2- 100mg HAP-乙醇浓度0.9ml/min"
]
y_label = ["乙醇转化率变化", "C4烯烃选择性变化"]

func_Ls1(X_list, Y_list, Y_list_, label_list, y_label, title_list)
func_Ls2(X_list_, Y_list__, Y_list___, label_list_, y_label, title_list_)

Original: https://www.cnblogs.com/Slience-me/p/15481942.html
Author: Slience_me
Title: 【数学建模相关】matplotlib画多个子图(散点图为例 左右对照画图)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585881/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 大数据之Hadoop集群的HDFS压力测试

    测试HDFS写性能 原文:sw-code1)写测试的原理 2)测试内容:向HDFS集群写10个128MB的文件(3个机器每个4核,2 * 4 = 8 < 10 < 3 …

    Linux 2023年6月8日
    089
  • Pytorch 中 tensor的维度拼接

    torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是 增加新的维度进行堆叠,即其维度拼接后会增加一…

    Linux 2023年6月7日
    0104
  • 【深度学习】PyTorch Dataset类的使用与实例分析

    Dataset类 介绍 当我们得到一个数据集时,Dataset类可以帮我们提取我们需要的数据,我们用子类继承Dataset类,我们先给每个数据一个编号(idx),在后面的神经网络中…

    Linux 2023年6月13日
    094
  • JS实现整个DIV里的字号整体放大或缩小

    JS实现对DIV里内容的字体方法或缩小 html代码 只写主要代码,样式可以自己写 <div class="content_sms"> &#x8FD…

    Linux 2023年6月7日
    087
  • ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录) 说到配置,第一印象可能就是”…

    Linux 2023年6月7日
    0112
  • Makefile

    target … : prerequisites … command … … target可以是一个object file(目标文件),也可以是一个执行文件,还可以…

    Linux 2023年6月7日
    092
  • centos快速搭建nfs共享

    一、nfs服务器端 01.安装nfs服务 yum -y install nfs-utils 02.创建存储目录 mkdir -p /data/2haohr_backup 03.设置…

    Linux 2023年6月6日
    0109
  • Linux系统查看hosts配置与dns域名配置

    ;gutter:true;方法1:for i incat /etc/hosts | grep -v ^$ | grep -v “127.0.0.1” | g…

    Linux 2023年6月13日
    087
  • 没那么简单的单例模式

    作者:小牛呼噜噜 | https://xiaoniuhululu.com计算机内功、JAVA底层、面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 什么是单例 单例的应用场景 单…

    Linux 2023年6月6日
    0117
  • python_距离测量

    之所以写这个,其实就是希望能对距离有一些概念,当然这个也是很基础的,不过千里之行始于足下嘛,各种路径算法,比如a*什么的都会用到这个 距离测量有三种方式 1、欧式距离,这个是最常用…

    Linux 2023年6月6日
    092
  • C++11

    1.新增不需要赋值即可初始化 //C++98 int a = 1; int* p1 = new int[3]; Date d1(2022, 9, 26); //C++11 Date…

    Linux 2023年6月13日
    0106
  • 版本控制gitlab

    版本控制gitlab 版本控制gitlab 版本控制介绍 常用的版本控制工具: gitlab部署 gitlab网页界面的基本使用 使用命令行的方式进行上传文件 版本控制介绍 版本控…

    Linux 2023年6月6日
    0123
  • 实验1:SDN拓扑实践

    实验1:SDN拓扑实践 基础要求 a) mininet运行结果图 b)2的执行结果截图 2.a)3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。 2.b)3台主机,每个…

    Linux 2023年6月7日
    0103
  • 性能测试 CPU利用率低 响应时间长的瓶颈分析

    压测中Vuser增加,TPS上不去,意味着Response Time在增加,需要找出响应时间增加的原因: 1、网络带宽 在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递…

    Linux 2023年6月8日
    065
  • Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录【已成功实例】

    本文转自https://blog.csdn.net/qjc_501165091/article/details/51278696 ssh登录提供两种认证方式:口令(密码)认证方式和…

    Linux 2023年5月28日
    085
  • MySQL注入 利用系统读、写文件

    MySQL能读写系统文件的前提 不同系统、不同的数据库版本有细微差异,以下实验在Windows10和Mysql 5.7.26下操作; 1.拥有该File的读权限 、 该目录写的权限…

    Linux 2023年6月6日
    0114
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球