matlab 画图基本

article/2025/11/7 2:39:30

 

内容安排如下:

  • 1、基本绘制
  • (图画大小、图形名称、图画背景、坐标轴名称、刻度范围、曲线颜色、坐标轴字体颜色等)
  • 2、多条曲线
  • (plot hold on;plotyy;subplot;)
  • 3、日期及时间轴绘图
  • 4、区域填充绘制
  • 5、不连续段落绘制

1 基本绘制

想使用MATLAB绘制想要的图像,无非是搞懂各部分参数设置的方法,其实很多方法是通用的,图1为典型的曲线图,不妨先整理几个概念:

包含关系如下:

1)图像figure

figure就是指一个图像对话框,

gcf——get current figure,获取当前图形句柄,如果不存在图形,则创建新的图形。

用法:

①设置布画大小

set(gcf,'unit','centimeters','position',[10 5 14 7]);

②设置布画颜色

fig = gcf; % current figure handle
fig.Color = [0 0.5 0.5];
fig.ToolBar = 'none';

2)坐标轴axes/axis

axes——在指定位置建立轴坐标

axis——完成axes坐标轴设置,传回坐标轴句柄。

gca——get current axis or chart,获取当前图形坐标句柄,可用于设置坐标轴标注格式。

用法示例:

①建立新的轴坐标

axes('Color',[0 0 0], 'ZColor',[0 0.5 0], 'XColor',[0 0.5 0], 'YColor',[0 0.5 0]);

②设置同一坐标内两条曲线句柄

[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);
ylabel(hAx(1),'Slow Decay') % left y-axis 
ylabel(hAx(2),'Fast Decay') % right y-axis

③获取axis子项句柄设置属性

set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
ax = gca; % current axes
ax.FontSize = 12;
ax.TickDir = 'out';
ax.TickLength = [0.02 0.02];
ax.YLim = [-2 2];

3)数据标注

legend——为图形或坐标轴添加数据标注。

用法示例:

y1 = rand(3);
ax1 = subplot(2,1,1); 
plot(y1)
legend(ax1,'Line 1','Line 2','Line 3')

以下为一段完整的代码,供参考。

x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);% 新建图画,若figure(1)即指定图画句柄1
figure;
% 设置布画大小,合适的大小可防止粘贴到word文档时图片模糊
set(gcf,'unit','centimeters','position',[10 5 14 7]);
% 设置布画背景色
set(gcf,'Color',[0.9 0.9 0.9]);
% 绘制曲线,绘制多条曲线时可使用下列方法,也可用hold on
% hold on 在曲线实时逐点更新绘制时比较好用
plot(x,y1,x,y2,'--',x,y3,':');
% 设置坐标轴范围,等效于xlim、ylim
axis([0 2*pi -1.5 1.5]);% 设置坐标格
grid on;
% 曲线标注,设置标注位置及排列方法,注意上标下标、及转义字符的使用
legend('曲线_1','曲线^2','曲线\_3','Location','northeast','Orientation','vertical');
% 更广泛的,matlab绘图中支持latex公式,例如
% legend('\itu_{max}','\itu','\itu_{maxt}');
% 设置坐标轴标注,设置坐标轴字体
figure_FontSize=8;
xlabel('时间(s)','FontSize',figure_FontSize,'FontWeight','bold','Color','r');
ylabel('幅值');
% 有的老版本的MATLAB设置字体只能通过以下方式生效
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
% 批量设置字体格式
set(findobj('FontSize',10),'FontSize',figure_FontSize);
% 设置xy轴在图片中占的比例,可能需要自己微调。
set(gca,'Position',[.13 .17 .80 .74]);
% 批量设置曲线粗细
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
% 设置标题
title('sin函数示例图');

2 多条曲线绘制

根据不同表达需求,多条曲线绘制大致可以分以下几类:

1)一个轴坐标里同时绘制多条曲线,适用于多条取值范围相近曲线的比对分析。

x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);
plot(x,y1,x,y2,'--',x,y3,':');

等同于:

plot(x,y1);hold on;
plot(x,y2,'--');hold on;
plot(x,y3,':');hold on;

这里有个小技巧,若只想比对y1、y2、y3,不在意x轴,则可用多维数据方式绘图:

plot([y1' y2' y3']);

注意,数组需按列排列n*3

2)一个图形里同时绘制两个轴坐标,适用于取值范围差异较大曲线的趋势比对分析。这里其实也是可以绘制三条以上曲线的,但纵坐标轴只有左右两个,多的曲线只能看趋势了。

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);figure % new figure
[hAx,hLine1,hLine2] = plotyy(x,y1,x,y2);title('Multiple Decay Rates')
xlabel('Time (\musec)')% 设置曲线样式
hLine1.LineStyle = '--';
hLine2.LineStyle = ':';% 设置左右坐标轴
ylabel(hAx(1),'Slow Decay') % left y-axis 
ylabel(hAx(2),'Fast Decay') % right y-axis

3)一个图画figure里多个轴坐标,适用于一个系列的分图显示,写报告时可用,但写论文时大多要求子图也要有题注,具体使用的话自己取舍啦。

subplot(2,2,1);
x = linspace(-3.8,3.8);
y_cos = cos(x);
plot(x,y_cos);
title('Subplot 1: Cosine')subplot(2,2,2);
y_poly = 1 - x.^2./2 + x.^4./24;
plot(x,y_poly,'g');
title('Subplot 2: Polynomial')subplot(2,2,[3,4]);
plot(x,y_cos,'b',x,y_poly,'g');
title('Subplot 3 and 4: Both')

3 日期及时间轴绘制

日期及时间轴的绘制很多场合下会遇到,这里主要用到两个函数:datenum和dateaxis。

1)datenum——将指定格式的日期或时间转换为时间序列数据。

datenum可将字符串转为double

DateString = {'09/16/2007';'05/14/1996';'11/29/2010'};
formatIn = 'mm/dd/yyyy';
datenum(DateString,formatIn)

也可将数组类数据转换为时间序列

DateNumber = datenum(Y,M,D)
DateNumber = datenum(Y,M,D,H,MN,S)mData = load('datedata.txt');
tDate = datenum(mData(:,1:6)); 
plot(tDate,mData(:,7));
dateaxis('x',13);

2)dateaxis——将坐标轴刻度显示为指定格式

dateaxis(Tickaxis,DateForm,StartDate)

以下为从文件中读取当天绝对秒,绘制时间轴图形示例:

% 读取数据文件,第一列为当天绝对秒,第二列为数值
mData = load('exampleTime.txt');
% 设置一个其实日期点
dt0 = datenum('2019-11-16');
% 计算当天时间
mT = dt0 + mData(:,1)/3600;
% 绘图
plot(mT,mData(:,2));
dateaxis('x',13);
ylabel('幅值');
% 防止横坐标过于密集,调整标注角度
set(gca,'XTickLabelRotation',-45);
% 设置背景和曲线风格
set(gca,'Color',[0 0 0],'XColor',[0 0.5 0],'YColor',[0 0.5 0]);

4 区域填充绘制

区域填充图可以表达更形象丰富的数据,绘制函数为fill。

fill(X,Y,ColorSpec)

这里只需理解一下fill的工作方式,即沿着描述路径填充中间闭合区间,路径的描述通过(X,Y)指定的一系列点来标识,一下给出一个误差范围的绘图示例:

x = 0:0.01:40;
y = x.^2.*sin(x)+cos(x);   % 某序列值
stdY = std(y);           % y的标准差
y_up = y+3*stdY;       % y的上限值
y_low = y-3*stdY;       % y的下限值figure;
% 先绘制曲线
plot(x,y,'r-','LineWidth',2);hold on;
% 设置绘制路线
yForFill=[y_up,fliplr(y_low)];
xForFill=[x,fliplr(x)];
% 填充并设置图形格式
fill(xForFill,yForFill,'c','FaceAlpha',0.5,'EdgeAlpha',1,'EdgeColor','c'); 

5 不连续段落绘制

遇到不连续段落时,绘图通常会因为中断而出现不想要的连线,此时可将X轴补充完整,y轴缺失段落值设为NaN,绘图时中断数据自然跳过了。以下为示例代码:

x = 0:pi/100:2*pi;
y = sin(x);% 产生缺失数据
omX = x;
omY = y;
NaNY = y;
% 剔除50至100的数据
omX(50:100) = [];
omY(50:100) = [];
% 将50至100至为无意义数据
NaNY(50:100) = NaN;% 画出比对效果图
figure;
subplot(2,1,1);plot(omX,omY);
subplot(2,1,2);plot(x,NaNY);


http://chatgpt.dhexx.cn/article/NuK8Os5g.shtml

相关文章

MATLAB画图详细教程

本文将详细介绍如何用matlab绘图并美化。 关于figure() 创建图窗窗口:figure() figure()的属性: Name:在标题栏显示的名称,接字符串,如Test Position:在电脑屏幕上的位置和大小,后接向量[left,bottom,width,height]也就是说指定了图窗的左下角位置,再向右+width、…

MATLAB画图总结

前言 在进行数据处理展示的时候,为了能直观体现实验的结果,需要进行绘图,让人们能直观的记住数据的走向特征,图像是结果的一种可视化展现,因此掌握一些绘图方法非常重要,使用MATLAB可以很简单的进行画图。下…

matlab 画图基本介绍

1.在命令窗口输入命令时&#xff0c;可以不必每输入一条命令就按enter键执行&#xff0c;可以在输入几行后一同运行。方法是&#xff1a;换行时&#xff0c;只要在按住<shift>键的同时按<enter>键即可&#xff0c;否则matlab就会执行上面输入的所有语句。 2.如何将…

matlab画图操作(修改坐标轴及字体,加粗,颜色修改,适合论文画图)

matlab常用画图操作 1.设置坐标轴2.设置figure大小3.matlab线条设置4.子图设置5.颜色查询6.colorbar设置7.线条透明度设置8.设置坐标轴刻度形式&#xff08;对数刻度&#xff09;9.图例设置10 文件保存11 消除白色边框12 添加子标题13 调换y轴递增顺序 1.设置坐标轴 %设置坐标…

使用matlab画图中图

又到一年论文季&#xff0c;没想到临近投稿的我居然会被图片的清晰度打败&#xff0c;需要子母图的时候&#xff0c;我直接使用powerpoint进行拼接&#xff0c;多次png另存为&#xff0c;图已经糊出了新高度&#xff0c;那种超级糊图在论文里应该是投不出去的吧。。。但是&…

matlab-画图对坐标的显示

前言 许多小朋友对于matlab画图函数再熟悉不过了&#xff0c;但是画图里面还有更细小的地方我们还得注意&#xff0c;对于坐标的显示也是我们在日常生活中常需要我们做的&#xff0c;下面我就将以一个例子1来说明在画图中显示坐标的两种形式。 下面的数据取样格式为 提示&a…

Matlab画图相关知识

目录 一、绘制不同种类的图像 1.1.画一般曲线图 1.2.绘制柱状图 二、matlab的图像处理 2.1将多张图同时绘制在一个Figure上面&#xff0c;采用subplot函数 2.2改变matlab图像坐标刻度增长幅度 2.3设置坐标轴刻度为任意值 2.4在一张Figure中用同一个x对应两个y作图 2.5关于…

MATLAB画图使用不同的线型、点及标记

转载自&#xff1a;MATLAB画图使用不同的线型、点及标记 (baidu.com) 一、 线型、连续标记 先从最普通的说起。在plot函数中指定线型。 tlinspace(0,5,20); x1 t; x2 2*t; x3 3*t; x4 4*t; plot(t,x1,b,t,x2,g-o,t,x3,r*,t,x4,c:d); 这是基础的比较简单的情况。不做…

MATLAB绘图

在MATLAB中绘制函数图形的步骤如下&#xff1a; 先定义变量 x&#xff0c;通过指定的变量 x 值的范围&#xff0c;该函数被绘制&#xff1b; 然后定义函数&#xff0c; y f(x)&#xff1b; 最后调用 plot 命令&#xff0c;如 plot(x, y)。 接下来我们通过例子绘制简单的函…

matlab画图入门教程

**matlab画图&#xff1a;**图像是数据结果的一种可视化表现&#xff0c;它能直观的体现你的数据结果&#xff0c;并且能体现你获得结果的准确性&#xff0c;在当前的大数据时代&#xff0c;在做数据分析的时候&#xff0c;将其可视化可以直观多维的展示数据&#xff0c;可以让…

MATLAB——画图(经典)

plot 二维线图全页折叠 #语法 plot(X,Y) plot(X,Y,LineSpec) plot(X1,Y1,…,Xn,Yn) plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn) plot(Y) plot(Y,LineSpec) plot(___,Name,Value) plot(ax,___) h plot(___) 说明 示例 plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。 如果 …

MATLAB 画图

目录 图形对象属性 坐标轴 散点图 Line 属性 imagesc histogram 直方图 subplot 图像保存 其他 图形对象属性 set 设置图形对象属性 set(H,Name,Value)&#xff1a;为 H 标识的对象指定其 Name 属性的值 p plot(1:10); set(p,Color,red)% 更改特定线条的颜色gca 当…

【Matlab】MATLAB绘图

专题四 MATLAB绘图 绘图的目的是使数据可视化。 一 二维曲线 1. 函数plot() 在MATLAB中,函数plot()是最基本的绘图函数,利用它可以绘制出不同的二维曲线。函数plot()的基本用法: plot(x, y) % 其中,x和y分别用于存储x坐标和y坐标数据,通常x和y是长度相等的向…

Matlab 几种画图方式总结

函数形式/画图原理 1.显函数--- y f ( x ) 2.隐函数--- f (x , y ) 0 3.参数式--- x f ( x ) , y f ( y ) 4.极坐标--- 针对以上函数图像的绘制&#xff0c;有两种绘图方法&#xff1a; 1&#xff1a;找点画线&#xff1b; 2&#xff1a;根据定义域和函数关系画图&…

Matlab中的画图函数

目录 一、二维曲线和图形 1、二维图像基本命令plot (1). 曲线线型、颜色和标记点类型 (2). 设置曲线线宽、标记点大小&#xff0c;标记点边框颜色和标记点填充颜色等。 (3). 坐标轴设置 (4). 坐标轴刻度设置 (5). 图例 (6). 更多的设置 二、 图形的控制与表现 1&…

MATLAB-画图汇总

画图之前建议先想好自己要画什么样的图&#xff0c;再去找相关代码。 本文汇总了一些matlab画图代码和修饰指令。 画图指令 连线图-plot 连线图就是连接一个又一个的点&#xff0c;最后形成一个图&#xff08;折线图&#xff09;&#xff0c;但是当对进行限制&#xff0c;比…

matlab 找到数组中第一个不连续点_超全Matlab绘图方法整理

你好,我是 goldsunC让我们一起进步吧! 使用Matlab绘图 图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视化可以直观多维的展示数据,可以让人们更好的发现并且记住数据的特征,因此很多…

Matlab 学习(三)之绘图

一&#xff1a;二维绘图 1.1 plot 直角系绘图 首先要先绘图&#xff0c;日常绘图就要先描点&#xff0c;然后连点成线。在Matlab中绘图也是如此。 plot(x,y) 这里 x, y 都是向量&#xff0c;以 x 中的元素为横坐标&#xff0c; y 中的元素为纵坐标&#xff0c;作平面曲线。向量…

MATLAB 绘图

一、绘图的基本步骤 在MATLAB中绘制图形&#xff0c;通常采用以下7个步骤 1.准备数据 准备好绘图需要的横坐标变量和纵坐标变量数据。 2.设置当前绘图区 在指定的位置创建新的绘图窗口&#xff0c;并自动以此窗口的绘图为当前绘图区。 3.绘制图形 创建坐标轴&#xff0c;指定叠…

matlab之画图

目录 1. 横纵坐标轴 2. 格点显示 3. 图、窗体Figure1的命名 4. 多个图形叠加绘制 5. 频谱图 5.1 已知信号画频谱图 5.2 已知传输函数画频谱图 1. 横纵坐标轴 横纵坐标轴标签&#xff1a; x -pi: 0.01: pi; figure, plot(x, cos(x)); xlabel(“x axis”); ylabel(“y axi…