MATLABの基础绘图
文章目录
图线的绘制与装饰
使用plot()函数绘制图线
在MATLAB中,使用plot()
函数绘制图线,其语法为:
plot(x,y,'lineSpec')
-
x
: 图线上点的x坐标 -
y
: 图线上点的y坐标 -
LineSpec
: 图线的线条设定,三个指定线型,标记符号和颜色的设定符组成一个字符串,设定符不区分先后.具体细节请参考官方文档.
给制不带线条的数据点
如果指定标记而不是线型,则将仅绘制标记。例如:
plot(x,y,'d')
线型设定符
您可以指明要显示的线型、标记类型和颜色,下表进行了详细介绍:
设定符 | 线型 |
---|---|
‘- ’ |
实线(默认) |
‘-- ’ |
虚线 |
‘: ’ |
点线 |
‘-. ’ |
点划线 |
标记设定符
设定符 | 标记类型 |
---|---|
‘+ ’ |
加号 |
‘o ’ |
圆圈 |
‘* ’ |
星号 |
‘. ’ |
点 |
‘x ’ |
叉号 |
‘square ’ 或 ‘s ’ |
方形 |
‘diamond ’ 或 ‘d ’ |
菱形 |
‘^ ’ |
上三角 |
‘v ’ |
下三角 |
‘> ’ |
右三角 |
‘< ’ |
左三角 |
‘pentagram ’ 或 ‘p ’ |
五角星(五角形) |
‘hexagram ’ 或 ‘h ’ |
六角星(六角形) |
颜色设定符
设定符 | 颜色 |
---|---|
r |
红色 |
g |
绿色 |
b |
蓝色 |
c |
青蓝色 |
m |
品红色 |
y |
黄色 |
k |
黑色 |
w |
白色 |
EXAMPLE
x=[0:pi/20:2*pi];
y=sin(x);
plot(x,y,':.r')
装饰图线
添加图例
-
使用
legend()
函数为图片增加图例使用
legend(label1, ..., labelN)
函数可以为图片添加图例example1
hold off x=0:0.5:4*pi; y=sin(x); h=cos(x); w=1./(1+exp(-x)); g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2)); plot(x,y,'bd-', x,h,'gp:', x,w,'ro-', x,g,'c^-'); % 绘制多条图线 legend('sin(x)', 'cos(x)', 'Sigmoid', 'Gauss function'); % 添加图例
添加标题和标签
-
使用
title()
和*label()
为图片增加标题和标签example2
x1=[4 16 64]; x2=[4 16 64]; y1=[60 229 907]; y2=[33 126 482]; plot(x1, y1,'-r.') hold on plot(x2, y2,'--pb') xlabel('光阑直径d的平方/mm^2'); ylabel('I/10^{-11}A'); %*代替x、y等等 legend('波长435.8nm','波长546.1nm'); title('饱和电流和入射光强的关系')
添加注解
-
使用
text()
和annotation()
为图片增加注解x = linspace(0,3); y = x.^3.*sin(x); plot(x,y,'-b.'); line([2.5,2.5],[0,2.5^3*sin(2.5)]); % 作线函数 % line([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标]) % 修饰该直线,先加一个linestyle 再确定直线形式,再加{'colcor','k'},k为颜色代码 % line([1,2],[2,1],'linestyle','--','color','k'); str = '$ \int_{0}^{2.5} x^3\sin(x) dx $'; % $数学公式$ % 积分公式:\int_{下限}^{上限}dx % \隔开 text(0.3,6.5,str,'Interpreter','latex'); % text(x坐标,y坐标,'string')在图形中指定位置(x,y)显示字符串string。 % Interpreter,决定Text对象中是否可用latex字符注释,当设置为latex时,表示允许用户能够在String属性下输入latex字符。 annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]); % annotation('箭头类型', 'X', [x1,x2], 'Y', [y1,y2]); % line 线 arrow 箭头 doublearrow 双箭头 textarrow 带文本框的箭头 textbox 文本框注释
控制坐标轴,边框与网格
使用下列命令可以控制坐标轴,边框与网格
命令 | 作用 |
---|---|
grid on/off |
设置网格可见性 |
box on/off |
设置边框可见性 |
axis on/off |
设置坐标轴可见性 |
axis normal |
还原默认行为,将图框纵横比模式和数据纵横比模式的属性设置为自动 |
axis square |
使用相同长度的坐标轴线,相应调整数据单位之间的增量 |
axis equal |
沿每个坐标轴使用相同的数据单位长度 |
axis tight |
将坐标轴范围设置为等同于数据范围,使轴框紧密围绕数据 |
t = 0:0.1:2*pi;x = 4*cos(t);y = sin(t);%表示椭圆
plot(x,y,'-r');
grid on
box on
axis normal
text(0,0,'axis normal');
% axis square
% text(0,0,'axis square');
% axis equal
% text(0,0,'axis equal');
% axis tight
% text(0,0,'axis tight');
axis normal
axis square
axis equal
axis tight
绘制多条图线
在一个图像上绘制多条图线
-
默认情况下,每次执行
plot()
函数都会清除上一次绘图的结果,多次执行plot()
只会保留最后一次绘制的图形。 -
使用
hold on
和hold off
命令控制绘图区域的刷新,使得多个绘图结果同时保留在绘图区域中。x=0:0.1:2*pi; y=sin(x); h=cos(x);g=(x.^2)/50; plot(x,y,'-g.'); %第一次画了y hold on plot(x,g,'-r.', x,h,'-b.') %第二次画了g和h grid on box on axis on
在一个窗口内绘制多个图像
-
使用
subplot()
函数可以在一个窗口内绘制多个图像该命令表示将当前图窗划分为 m ∗ n m*n m∗n个网格,并在第 p p p个网格内绘制图像。
subplot(m,n,p)
示例如下:
subplot(2,2,1);
%确定画图位置
x = 0:0.1:2*pi;
y_sin = sin(x);
plot(x,y_sin,'-g.');
axis tight
title('Subplot1:Sine');
subplot(2,2,2);
%确定画图位置
x = 0:0.1:2*pi;
y_cos = cos(x);
plot(x,y_cos,'-r.');
axis tight
title('Subplot2:Cosine');
subplot(2,2,[3,4]);
%确定画图位置
x = 0:0.1:2*pi;
y = (x.^2)/50;
plot(x,y,'-b.');
axis tight
title('Subplot3');
通过图形句柄操作图形属性
使用get()
和set()
函数可以对图形对象的属性进行访问和修改,访问官方文档可以查看所有图形对象的属性。
set(H,Name,Value)
% 改变某一特定属性的数值
get(H,'propertyName')
% get(对象句柄, '属性名')
将图形保存到文件
-
将图窗另存为图像文件
创建一个绘图并将其另存为 PNG 图像文件,存储到matlab的根文件夹。
x=0:0.1:2*pi;
y=sin(x);
plot(x,y,'-g.');
%示例
print('example','-dpng')
- 也可以直接在figure界面保存,或者截图。
本文地址:https://blog.csdn.net/Antonioxv/article/details/109823395