Matlab 使用subplot绘制多个子图,一元拟合

实现效果:

clc; clear;filename = 'sri.xlsx'; % 确认文件路径data = readtable(filename);
datavalue = data{:,2:end};
datavalue = datavalue';fig = figure('Position', [0, 0, 1500, 900]);
indexString = ["(a)","(b)","(c)","(d)","(e)","(f)","(g)",];
subplotName = ["h1","h2","h3","h4","h5","h6","h7"];
for i = 1:7subplot(4,2,i);years = datavalue(:,1); values = datavalue(:,i+1);coefficients = polyfit(years, values, 1);k = coefficients(1);b = coefficients(2);% 计算Y轴上下限值,将其设置为最大值和最小值的 1.1 倍y_max = max(values) * 1.3;y_min = min(values) * 1.3;plot(years, values, 'o-', 'MarkerSize', 4, 'MarkerFaceColor', '#58CCFA', 'Color', '#58CCFA', 'LineWidth', 1.5);hold on;plot(years, k*years + b, 'r--',  'LineWidth', 1);%拟合线xlim([1960 2018]);xtick_values = 1960:10:2010;  if ~ismember(2018, xtick_values)xtick_values = [xtick_values, 2018];  endxticks(xtick_values);ylabel('SRI', 'FontSize', 12);ylim([y_min y_max]); % 设置Y轴上下限值grid on;yrange = ylim; % 获取当前子图的y轴值域范围text(1961, 0.9 * yrange(2),indexString(i), 'FontSize', 14, 'HorizontalAlignment', 'left', 'VerticalAlignment', 'top'); % 调整文本位置坐标ax = gca; ax.FontSize = 12; annotation('textbox', [ax.Position(1), ax.Position(2), ax.Position(3), ax.Position(4)], 'String', sprintf('k = %.4f, b = %.2f', k, b), 'FontSize', 14, 'EdgeColor', 'none', 'Color', 'black', 'HorizontalAlignment', 'center'); % 调整注释框位置hold off;
end% 在第 8 个子图位置添加文本
subplot(4,2,8);
str = ["(a):华北湿润半湿润暖     (b):西北荒漠地区";..."(c):华中华南湿润亚热     (d):东北湿润半湿润温";..."(e):内蒙草原地区            (f):青藏高原";..."(g):华南湿润热带地区"];text(0.15, 0.4, sprintf('%s\n', str{:}), 'FontSize', 14, 'HorizontalAlignment', 'left', 'VerticalAlignment', 'middle');
axis off; % 关闭坐标系显示print(fig, 'data.tif', '-dtiff', '-r2000'); % 保存为 TIFF 文件,300 DPI 分辨率

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

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

相关文章

windows获取进程信息函数

#ifndef PROCESS_H #define PROCESS_H #include <windows.h> #include <vector> #include <string> #include <tlhelp32.h> #include <stdio.h>/*** 获取某个进程名称是否正在运行* brief ProcessIsRunning* param name* return*/ bool ProcessI…

<计算机网络自顶向下> Internet Protocol(未完成)

互联网中的网络层 IP数据报格式 ver: 四个比特的版本号&#xff08;IPV4 0100, IPV6 0110&#xff09; headlen&#xff1a;head的长度&#xff08;头部长度字段&#xff08;IHL&#xff09;指定了头部的长度&#xff0c;以32位字&#xff08;4字节&#xff09;为单位计算。这…

可替换XC6206P332MR的润石超低功耗LDO RS3221-3.3YF3助力智能门锁设计,精度低至1%

润石科技的RS3221&#xff0c;可满足超低功耗&#xff0c;在智能门锁设计时&#xff0c;兼容替换TOREX的XC6206P332MR&#xff0c;具体请参考图1参数对比&#xff1a; 图1&#xff1a;RS3221-3.3YF3与XC6206P332MR电性能参数对比 通过上表可知&#xff0c; 1、 RS3221-3.3YF3…

家政服务小程序:家政行业的数字化转型

随着大众生活水平的提高&#xff0c;以及老龄化的加速&#xff0c;家政服务已经成为了大众生活中不可或缺的一部分。目前&#xff0c;我国家政服务市场的规模在持续扩大&#xff0c;发展前景一片大好。在日益提升的家政需求下&#xff0c;大众对家政服务的种类也逐渐多样。 为…

【ARMv9 DSU-120 系列 4.1 -- Utility bus 详细介绍 2】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 ARM DSU-120DSU-120 Utiity BusCluster and core PPUPPU寄存器的访问性PPU寄存器的作用系统组件基地址ARM DSU-120 DSU-120 Utiity Bus 在ARMv9架构中,DSU-120(Dynamic Shared Unit 120)是一个关键组件,用于管理核…

炒股自动化:券商官方,散户可用,查询订单状态API如何用?

券商官方的接口&#xff0c;个人账户可申请&#xff0c;入金门槛低&#xff0c;接入文档完善&#xff0c;技术支持好的&#xff0c;经过我们筛选后&#xff0c;只有一家符合 会编程&#xff0c;有基础&#xff0c;只是需要API接口的朋友不用看这些&#xff0c;不会写程序的朋友…

全球乙烯丙烯酸共聚物(EAA)市场现状及产业发展趋势分析2024

乙烯丙烯酸共聚物&#xff08;EAA&#xff09;是丙烯酸的乙酯。它是一种具有特殊气味的无色液体。EAA具有很好的附着力和密封性能、特殊的硬度、柔韧性。 据GIR (Global Info Research)调研&#xff0c;按收入计&#xff0c;2023年全球乙烯丙烯酸共聚物&#xff08;EAA&#xf…

现实与虚幻:人工智能的迷惑瞬间

在当今社会&#xff0c;随着人工智能技术的迅速发展和普及&#xff0c;越来越多的公司纷纷推出自己的AI大模型&#xff0c;各类应用也开始内置AI玩法&#xff0c;如抖音的AI特效等。然而&#xff0c;随之而来的是人们在使用过程中频繁遇到的让人怀疑的问题&#xff0c;引发了对…

stm32智能小车前进,后退,左转,右转,停止

本文代码使用 HAL 库。 文章目录 前言一、电机模块介绍二、原理图分析三、电机驱动小车运动原理1. **小车前进&#xff0c;后退&#xff0c;停止**2&#xff0c;小车左转&#xff0c;右转3&#xff0c;左自旋&#xff0c;右自旋 四&#xff0c;cubeMX 配置五&#xff0c;代码模…

DeFi 基础知识:去中心化金融及其运作方式

文章目录 一、金融的演变&#xff1a;从传统到去中心化二、了解价值主张&#xff1a;为什么选择 DeFi&#xff1f;三、DeFi 基础知识&#xff1a;区块链和智能合约3.1 权力下放&#xff1a;权力归于人民3.2 无需信任的系统和点对点交易3.3 公开透明的账本&#xff1a;区块链的作…

基础款:Dockerfile 文件

# bash复制代码# 使用 Node.js 16 作为基础镜像 # 指定一个已经存在的镜像作为模版&#xff0c;第一条必须是from FROM node:16# 将当前工作目录设置为/app # WORKDIR /app# 方法一&#xff1a;用dockerfile命令&#xff1a;进行下载打包文件 # 将 package.json 和 package-loc…

机器人系统开发ros2-基础实践02-自定义一个机器人动作aciton服务端和客户端(c++ 实现)

aciton 是 ROS 中异步通信的一种形式。 操作客户端向操作服务器发送目标请求。 动作服务器将目标反馈和结果发送给动作客户端。 先决条件&#xff1a; 将需要上一个 教程创建操作action_tutorials_interfaces中定义的包和接口。Fibonacci.action 步骤1&#xff1a; 1.1 创建…

MySQL recursive 递归

MySQL 从最内的select开始执行&#xff0c;但是同一个select clause可以在查询的结果上继续查询。 SELECT menu_id,parent_id,(SELECT m1.parent_id FROM sys_menu AS m1 WHERE m1.menu_idm.parent_id) FROM sys_menu AS m WHERE m.menu_id 89 方案1.通过recursive递归 使用…

吴恩达2022机器学习专项课程(一) 6.2 逻辑回归第三周课后实验:Lab2逻辑回归

问题预览/关键词 逻辑回归预测分类创建逻辑回归算法Sigmoid函数Sigmoid函数的表示sigmoid输出的结果Numpy计算指数的方法实验python实现sigmoid函数打印输入的z值和sigmoid计算的值可视化z值和sigmoid的值添加更多数据&#xff0c;使用逻辑回归可以正常预测分类![在这里插入图片…

IP地址的地理位置如何确定?

IP地址的地理位置确定是一个复杂且多步骤的过程&#xff0c;它依赖于多种技术和数据源来实现。下面将详细解释IP地址地理位置是如何被确定的。 首先&#xff0c;我们需要了解IP地址的基本结构。IP地址由一串数字组成&#xff0c;用于标识网络中的设备。这些数字实际上代表了设…

ESP32-S3如何用socket通信

实验目的&#xff1a; 通过 Socket 编程实现 pyWiFi-ESP32-S3 与电脑服务器助手建立连接&#xff0c;相互收 发数据。 首先先来简单了解一下Socket 我们先来看看网络层级模型图&#xff0c;这是构成网络通信的基础&#xff1a; 我们看看 TCP/IP 模型的传输层和应用层&…

SpringBoot + Vue实现Github第三方登录

前言&#xff1a;毕业设计终于好了&#xff0c;希望能有空多写几篇 1. 获取Github账号的Client ID和Client secrets 首先点击这个链接进入Github的OAuth Apps页面&#xff0c;页面展示如下&#xff1a; 之后我们可以创建一个新的apps: 填写资料&#xff1a; 创建之后就可以获…

WhatsApp解封方法和防封技巧分享,内附解封话术!

WhatsApp 已成为外贸人员不可或缺的沟通工具&#xff0c;它不仅加速了全球范围内的客户沟通&#xff0c;还提供了一个方便快捷的社交媒体营销平台。然而&#xff0c;面对WhatsApp账号被封的问题&#xff0c;许多外贸人常常感到束手无策。本文旨在分享有效的WhatsApp解封方法&am…

大宋咨询(深圳第三方绩效评估)谈关于消费者满意度研究的概念

消费者满意度研究是一种评估消费者对于特定产品、服务或购物体验的满意程度的方法。它旨在了解消费者在购买和使用过程中的感受、意见和反馈&#xff0c;从而衡量企业的产品、服务质量以及顾客关系管理的效果。消费者满意度研究对于企业了解消费者需求、改进产品和服务&#xf…

使用Selenium爬取目标网站被识别的解决之法

在进行网络数据抓取和爬取时&#xff0c;Selenium是一个常用的工具&#xff0c;它可以模拟人类用户的行为&#xff0c;自动化地操作浏览器进行页面的访问和数据的提取。然而&#xff0c;随着网站对爬虫的检测能力不断提升&#xff0c;很多爬虫程序在运行过程中经常会遭遇被目标…