MTLAB绘图

news2025/1/13 19:47:46

这里写目录标题

  • 一、图例
    • 1、散点图
  • 二、绘图
    • 1、总体图形参数
    • 2、坐标、图框、网格
      • 图框
      • 去上右边框小刻度
      • 网格
      • 坐标
      • 范围和刻度控制
      • 旋转 坐标、刻度
    • 3、图例
      • 图例位置和方向 Location和Orientation
      • 图例加标题 、分多列
    • 4、文本 +字、字体、字号
    • 5、线型 +符号
    • 6、颜色栏 colorbar
    • 7、颜色
    • 8、混合双图---设置左右y轴
  • 三、实例
    • 一、线性回归
      • 1、散点图

一、图例

1、散点图

MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 colorbar

%%%%绘图  xx,yy轴,10-点大小尺寸;r-残差值以着色;filled-设置为实心
scatter(xx,yy,10,r,'filled')     %散点
h = colorbar;
set(get(h,'label'),'string','残差值');   %图例

二、绘图

1、总体图形参数

gcf 返回当前Figure 对象的句柄值
gca 返回当前axes 对象的句柄值
set(gcf,’unit’,’centimeters’,’position’,[10 5 7 5]);
这就是对图形的位置及大小进行设置。单位为厘米,大小为7cm×5cm,图形起点坐标为(10cm,5cm)表示左下点离显示器左侧边界10cm,离下侧边界5cm。
将图形大小设置好之后,就需要设置实际的图在figure中的比例,这就需要对图形的坐标进行设置。
set(gca,‘Position’,[.2 .2 .7 .65]);
位置[.2 .2 .7 .65]表示所画的图形在figure中所占的比例,前两个值表示位置,后两个值表示大小。

title('图形名称')%(都放在单引号内)
xlabel('x轴说明')
ylabel('y轴说明')
text(x,y,'图形说明+文本大小','fontsize',16)  %文本+大小
legend('图例1','图例2',)
set(gca,‘XTickLabel’,[1991:1:2009]);%给X轴坐标加标签 (1991-2009间隔1xtickangle(50)%更改x轴标签角度

2、坐标、图框、网格

图框

box on:打开
box off:关闭

去上右边框小刻度

新建坐标

box off
ax2 = axes('Position',get(gca,'Position'),...
    'Color','none',...
    'XAxisLocation','top',...
    'YAxisLocation','right',...
    'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);

网格

grid minor :成最小的网格线
grid on 打开 grid off关闭

坐标

axis equal :纵横坐标轴采用等长刻度
axis square:产生正方形坐标系(默认为矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on :显示坐标轴
axis([xmin xmax ymin ymax])
命令可以限制二维图像的x和y坐标,此处输入axis([0 2pi -2 2]),限制横坐标为0到2pi,纵坐标为-2到2。

范围和刻度控制

set(gca,'XLim',[0 10]);%X轴的数据显示范围
set(gca,'XTick',[0:1:10]);%设置要显示坐标刻度,0-10间隔1
set(gca,'XTickLabel',[0:1:10]);%给坐标加标签
使用xticks()函数,xticklabels()函数,以及yticks()函数在指定位置显示横坐标和纵坐标刻度值,间距可以不一致。
xticks([-3pi -2pi -pi 0 pi 2pi 3pi])
xticklabels({-3\pi’,-2\pi’,-\pi’,0,‘\pi’,2\pi’,3\pi’})
yticks([-1 -0.9 -0.5 0 0.4 0.7 1])
a= linspace(-15,0.1,15); %坐标刻度-15~15、间距0.1
b=sin(a);
plot(a,b)
将绘制一个横坐标-1515的正弦函数曲线图。

旋转 坐标、刻度

旋转横坐标和纵坐标标签或刻度的角度,使用xtickangle()函数和ytickangle()函数

xtickangle(50) %x轴刻度旋转50°
ytickangle(80)

3、图例

legend(‘text1‘,‘text2‘,…)

或者,我们也可以使用DisplayName属性指定图例标签。调用绘图函数时,将DisplayName属性设置为“名称-值”对。然后,调用legend命令以创建图例。

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

图例位置和方向 Location和Orientation

‘Orientation’,'horizon’水平排列

legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

‘north’ 坐标区中的顶部 ‘south’ 坐标区中的底部
‘east’ 坐标区中的右侧区域 ‘west’ 坐标区中的左侧区域
‘northeast’ 坐标区中的右上角(二维坐标区的默认值) ‘northwest’ 坐标区中的左上角
‘southeast’ 坐标区中的右下角 ‘southwest’ 坐标区中的左下角
‘northoutside’ 坐标区的上方 ‘southoutside’ 坐标区的下方
‘eastoutside’ 到坐标区的右侧 ‘westoutside’ 到坐标区的左侧
‘northeastoutside’ 坐标区外的右上角(三维坐标区的默认值)
‘northwestoutside’ 坐标区外的左上角
‘southeastoutside’ 坐标区外的右下角 ‘southwestoutside’ 坐标区外的左下角
‘best’ 在与绘图中的数据发生最少冲突的坐标区内
‘bestoutside’ 坐标区的右上角之外(当图例为垂直方向时)或坐标区下方(当图例为水平方向时)
‘none’ 由 Position 属性决定。可使用 Position 属性指定自定义位置。

图例加标题 、分多列

lgd = legend;
lgd.Title.String = ‘2016 Data’ 添加图例标题
lgd.NumColumns = 2 分两列
标题添加方法2
lgd = legend(‘cos(x)’,‘cos(2x)’);
title(lgd,‘My Legend Title’)

4、文本 +字、字体、字号

文本
在图形中任意位置添加文本注释,用到的函数为text。其调用语法为

text(x,y,‘text’),x、y为标注点的坐标位置,text为添加的文本注释。txt设置多行
txt = {'',''}  %设置多行
txt = {['N=',num2str(N), '  R=', num2str(R)],['RMSE=',num2str(RMSE)],}
%N,R同行;RMSE换行; num2str()添加变量值为字符串
text(x,y,txt)

字体、字号

set(gca,'Fontname','宋体','FontSize',14)
ylabel('标签Y','Fontname','宋体','FontSize',14);
xlabel('标签X','Fontname','宋体','FontSize',14);

文本注释,bilibili

5、线型 +符号

例 plot(x,y,‘k*’,x1,y1,‘b–’)
在这里插入图片描述

plot(x,a,'r-','linewidth',1) 
%x,y,r-红色实线;linewidth线粗细设置

6、颜色栏 colorbar

7、颜色

常用配色推荐:https://www.jb51.net/article/257296.htm

8、混合双图—设置左右y轴

% 数据
Ncar=1:3;
% 柱状图数据
Norder1 = [800 1100 1250];
Norder2 = [420 550 625];
% 折线图数据
qcar1 = [1 2 3];
qcar2 = [2 4 6];

% 打开新图
figure;
hold on;

% 左边y轴(柱状图)
yyaxis left
bar(Ncar, [Norder1',Norder2']);
ylim([0 1500])
ylabel('Transfer speed')

% 标记数据到柱状图
offset_vertical = 40;   % 根据需要调整
offset_horizon = 0.15;  % 根据需要调整
for i = 1:length(Norder1)
    if Norder1(i)>=0
        text(i - offset_horizon,Norder1(i) + offset_vertical,num2str(Norder1(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
    else
        text(i - offset_horizon,Norder1(i) - offset_vertical,num2str(Norder1(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
    end
end
for i = 1:length(Norder2)
    if Norder1(i)>=0
        text(i + offset_horizon,Norder2(i) + offset_vertical,num2str(Norder2(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
    else
        text(i + offset_horizon,Norder2(i) - offset_vertical,num2str(Norder2(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
    end
end

% 右边y轴(折线图)
yyaxis right
plot(Ncar,qcar1,'ro-');
plot(Ncar,qcar2,'b*-');
ylim([0 8])
ylabel('Energy consumption per hour')

% 图注
legend({'Low melting point crude oil transfer pipeline','High melting point crude oil transfer pipeline',...
    'Low melting point crude oil transfer pipeline','High melting point crude oil transfer pipeline'});

% x轴
set(gca,'xtick', [1 2 3 4])

三、实例

一、线性回归

1、散点图

s = data(2,:);   %CE-318
m = data(3,:);   %MODIS

X = [ones(length(m),1), s'];%x'表示行向量转置为列向量
Y = m';
[ b,bint,r,rint,stats ] = regress(Y,X); %回归计算

ii=1;
for i=1:size(r,1)
    if((r(i)<1 && r(i)>0) || (r(i)>-1 && r(i)<0))  %去除离群值
        day(ii) = data(1,i);
        xx(ii) = s(i);
        yy(ii) = m(i);
        ii=ii+1;
    end
end
XX = [ones(length(yy),1), xx'];%x'表示行向量转置为列向量  % ones(n,1)表示有常数项,如果无常数项可以去掉。
YY = yy';
[ b,bint,r,rint,stats ] = regress(YY,XX);  %重新回归
R=corrcoef(xx,yy);  
R = R(1,2);      %相关系数
N=size(xx,2)     %有效数值量
R2=stats(1);     %决定系数

%%%%绘图  xx,yy轴,10-点大小尺寸;r-残差值以着色;filled-设置为实心
scatter(xx,yy,10,r,'filled')     %散点
h = colorbar;
set(get(h,'label'),'string','残差值');   %图例
% xlim([0 20]) % X,Y,Z轴取值范围
ylim([0 2.6])   %y轴范围
xlabel('CE-318')   %x轴标签
ylabel(name)
hold on      %保持添加图

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

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

相关文章

【技能分享】CAD转SHP最好的方法

1、利用 ArcToolsbox 工具先将 DWG 文件转为 MDB 通过 CASS 软件生成的 DWG 文件&#xff0c;字段中包含有很多属性内容&#xff0c;所以我们先将 DWG 格式 的文件转换为 MDB 格式&#xff0c;再通过 MDB 转换为 SHP 格式数据进行整理。具体步骤如下&#xff1a; 通过 ArcTool…

2023Mathorcup高校数学建模挑战赛ABCD选题建议

提示&#xff1a;本科同学尽量选择C、D题进行作答&#xff0c;获奖率相对会高。C君认为的难度&#xff1a;AD<C<B&#xff0c;开放度&#xff1a;B<C<A<D 。 A题 量子计算机在信用评分卡组合优化中的应用 这道题目是传统的运筹学题目。需要建立客户信用等级的…

阿里ARouter 路由框架解析

一、简介 众所周知&#xff0c;在日常开发中&#xff0c;随着项目业务越来越复杂&#xff0c;项目中的代码量也越来越多&#xff0c;如果维护、扩展、解耦等成了一个非常头疼问题&#xff0c;随之孕育而生的诸如插件化、组件化、模块化等热门技术。 而其中组件化中一项的难点&…

Spring Cloud 之五:Feign使用Hystrix

系列目录&#xff08;持续更新。。。&#xff09; Spring Cloud之一&#xff1a;注册与发现-Eureka工程的创建 Spring Cloud之二&#xff1a;服务提供者注册到Eureka Server Spring Cloud之三&#xff1a;Eureka Server添加认证 Spring Cloud之四&#xff1a;使用Feign实现…

camunda如何监控流程执行

在 Camunda 中&#xff0c;可以使用 Camunda 提供的用户界面和 API 来监控流程的执行情况。以下是几种常用的监控流程执行的方式&#xff1a; 1、使用 Camunda Cockpit&#xff1a;Camunda Cockpit 是 Camunda 官方提供的流程监控和管理工具&#xff0c;可以在浏览器中访问 Co…

【百面成神】消息中间件基础7问,你能撑到第几问

前 言 &#x1f349; 作者简介&#xff1a;半旧518&#xff0c;长跑型选手&#xff0c;立志坚持写10年博客&#xff0c;专注于java后端 ☕专栏简介&#xff1a;纯手打总结面试题&#xff0c;自用备用 &#x1f330; 文章简介&#xff1a;消息中间件最基础、重要的9道面试题 文章…

Android中的MVVM架构:使用Jetpack组件实现现代化的应用架构

Android中的MVVM架构&#xff1a;使用Jetpack组件实现现代化的应用架构 Jetpack组件是构建现代Android应用的绝佳利器&#xff0c;组件化设计让构建App如此简单。 引言 随着移动应用的日益复杂和功能的不断增加&#xff0c;构建稳健、可扩展和易维护的Android应用变得越来越重…

[考研数据结构] 第3章之队列的基本知识与操作

文章目录 队列的基本概念 队列的顺序存储 顺序队列 存储类型 基本操作 循序队列 存储类型 基本操作 循环队列判空与判满的三种解决方案 方法一&#xff1a;牺牲一个存储单元 方法二&#xff1a;类型增设记录型变量size 方法三&#xff1a;类型增设标志型变量tag 队…

嵌入式【协议篇】CAN协议原理

一、CAN协议介绍 1、简介 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络。 其实可以简单把CAN通信理解成开一场电话会议,当一个人讲话时其他人就听(广播),当多个人同时讲话时则根据一定规则来决定谁先讲话谁后讲…

【音视频】 zlm的几个代理接口解释

目录 12、/index/api/addStreamProxy 30、/index/api/addStreamPusherProxy 14、/index/api/addFFmpegSource 24、/index/api/openRtpServer 27、/index/api/startSendRtp 参考 12、/index/api/addStreamProxy 拉流代理 &#xff1a; 194上在播放。 而10.30.2.6上加上这个…

FastDGCNN

Faster Dynamic Graph CNN: Faster Deep Learning on 3D Point Cloud Data | IEEE Journals & Magazine | IEEE Xplore ​​​​​​​题目&#xff1a;Faster Dynamic Graph CNN: Faster Deep Learning on 3D Point Cloud Data&#xff08;更快的动态图形CNN&#xff1a;对…

Android 对View 进行旋转、缩放、平移的属性变换后,获取外矩形顶点

文章目录 前言改变 View 的属性&#xff0c;进行旋转、缩放、平移输出 View 的属性 使用 matrix 映射 view 变换后的外矩形前(左)乘(preXxx)、后(右)乘(postXxx) 对映射结果的影响前(左)乘(preXxx) 的意义后(右)乘(postXxx) 结论 来张图 前言 Android View 通过平移、旋转、…

找PPT模板就上这5个网站~

分享几个可以永久免费下载PPT模板、素材的网站&#xff0c;上万个模板随便下载&#xff0c;赶紧收藏起来~ 1、菜鸟图库 https://www.sucai999.com/search/ppt/0_0_0_1.html?vNTYxMjky 网站素材非常全面&#xff0c;主要以设计类素材为主&#xff0c;办公类素材也很多&#x…

4、RSA终端指令

RSA总结 加密算法,都是数学知识对称加密(传统加密算法)RSA(三个人的名字)非对称加密(现代加密算法) 原根欧拉函数、欧拉定理(费马小定理)模反元素 m^(e * d) mod n ≡ m迪菲赫尔曼密钥交换RSA算法 RSA: 拆解两个(大)质数的乘积很难!所以RSA想对安全.加密: M ^e % N C解密: C…

前端学习:HTML头部、布局

目录 HTML头部 一、HTML 元素 二、head标签和header标签的不同 三、HTML 元素 四、HTML 元素 五、HTML 元素 六、 HTML 七、HTML元素 为搜索引擎定义关键词&#xff1a; 为网页定义描述内容&#xff1a; 每60秒刷新当前页面&#xff1a; 八、HTML 九、HTML头部元素…

Vue项目搭建流程

目录 1、通过命令创建 2、npm下载依赖 3、路由配置 4、配置组件 5、对axios进行二次封装 6、全局接口请求封装 7、配置跨域(反向代理) 1、通过命令创建 create vue 项目名 2、npm下载依赖 nmp i 依赖名版本号 axios1.2.1 echarts5.1.2 element-ui2.15.12 vue-router3…

56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载

文章目录 56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载56.1 安装56.2 运行56.3 卸载 56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载 56.1 安装 配置本地yum源&#xff0c;详细信息请参考《openEuler 22.03-LTS 搭建repo服务器》。 清除缓存。 # dnf clean…

【SpringBoot】1、SpringBoot整合JWT实现Token验证

这里写目录标题 1.单点登录1.1 单系统登录1.1.1 单系统登录流程(使用Session实现单系统登录) 1.2 多系统(单点)登录1.2.1 单点登录实现方案1.2.1.1 Session跨域1.2.1.2 Spring Session共享 1.3 Token机制1.3.1 传统身份认证1.3.2 基于Token的身份认证 1.4 JWT机制1.4.1 JWT数据…

Redis集群部署详解

文章目录 集群环境集群搭建测试集群故障转移集群扩容集群缩容 集群环境 集群介绍 1.什么是集群 所谓的集群&#xff0c;就是通过增加服务器的数量&#xff0c;提供相同的服务&#xff0c;从而让服务器达到一个稳定、高效的状态。 2.使用redis集群的必要性 单个redis存在不稳定…

9.6 数组的指针和指向数组的指针变量 - 3

9.6 数组的指针和指向数组的指针变量 - 3 一.回顾二维数组和多维数组的概念二.指向多维数组的指针和指针变量探究1.a:二维数组名&#xff0c;也是整个二维数组的首地址。我们可以认为是第0行的首地址是10002.a1 , a2 分别代表第一行首地址和第二行首地址。3.这表示a[0],a[1],a[…