MATLAB绘图

来源:互联网 发布:联通网络整合营销包括 编辑:程序博客网 时间:2024/06/05 18:05

subplot(m,n,p)可以在一个figure中画m×n个子图,p可以指定子图的位置,一般情况下p为单个数字,p为向量时可以合并多个子图为一个子图。


axis

axis off;% 去掉坐标轴
axistight;% 紧坐标轴
axisequal;% 等比坐标轴
axis([-0.1, 8.1, -1.1, 1.1]);% 坐标轴的显示范围

% gca: gca, h=figure(...);
set(gca,'XLim',[3 40]);% X轴的数据显示范围
set(gca,'XTick',[-3.14,0,3.14] );% X轴的记号点
set(gca,'XTicklabel',{'-pi','0','pi'});% X轴的记号
set(gca,'XTick', []);% 清除X轴的记号点
set(gca,'XGrid','on');% X轴的网格
set(gca,'XDir','reverse');% 逆转X轴
set(gca,'XColor','red');% X轴的颜色
1. axis([xmin xmax ymin ymax])
设置当前图形的坐标范围,分别为x轴的最小、最大值,y轴的最小最大值
2. V=axis
返回包含当前坐标范围的一个行向量
3. axis auto
将坐标轴刻度恢复为自动的默认设置
4. axis manual
冻结坐标轴刻度,此时如果hold被设定为on,那么后边的图形将使用与前面相同的坐标轴刻度范围
5. axis tight
将坐标范围设定为被绘制的数据范围
6. axis fill
这是坐标范围和屏幕的高宽比,使得坐标轴可以包含整个绘制的区域。该选项只有在PlotBoxaApectRatio或DataAspectRatioMode被设置为‘manual’模式才有效
7. axis ij
将坐标轴设置为矩阵模式。此时水平坐标轴从左到有取值,垂直坐标从上到下
8. axis xy
将坐标设置为笛卡尔模式。此时水平坐标从左到右取值,垂直坐标从下到上取值
9. axis equal
设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
10. axis square
将坐标轴设置为正方形
11. axis normal
将当前的坐标轴框恢复为全尺寸,并将单位刻度的所有限制取消
12. axis vis3d
冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
13. axis off
关闭所有的坐标轴标签、刻度、背景
14. axis on
打开所有的坐标轴标签、刻度、背景



使用plot绘制二维图像

MATLABplot函数常常被用于绘制各种二维图像,用法也是多种多样,本文仅介绍plot函数的基本用法——使用plot函数绘制二维点图和线图。plot函数的一般调用形式如下:

plot(X, Y, LineSpec)

其中X由所有输入点坐标的x值组成,Y是由与X中包含的x对应的y所组成的向量。LineSpec是用户指定的绘图样式,主要选项如下:

Specifier

Line Style(线型)

-

--

实线(默认样式)

虚线(短划线)

:

点线

-.

点划线

 

Specifier

Marker(坐标点样式)

o

+

加号

*

星号

.

x

十字

s

正方形

d

菱形

^

上指向三角形

v

下指向三角形

右指向三角形

<<o:p> 

左指向三角形

p

五角星

h

六角形

 

Specifier

Color

y

黄色

m

品红

c

蓝绿色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

例如:’--or’表示坐标点为圆圈标志,且线型为红色短划线的绘图样式。

 

举例如下:

定义x02pi之间的一组向量,且x向量中相邻两个值之间的增量为pi/100。定义y向量中的值为x向量的sine值。

x = 0:pi/100:2*pi;

y = sin(x);

figure 打开新的绘画窗口,可省略该句

plot(x,y) %采用默认样式,绘制实线

MATLAB中plot函数的简单用法

x = 0:pi/20:2*pi;

y = sin(x);

plot(x,y,'--or') %坐标点为圆圈标志,且线型为红色短划线的绘图样式

 MATLAB中plot函数的简单用法

注:可以根据上述LineSpec表格自由组合线型样式。

 

在不关闭绘图窗口的前提下,还可以为图像添加标题,x轴和y轴标签,例如:

xlabel('x')

ylabel('sin(x)')

title('Plot of the Sine Function')

MATLAB中plot函数的简单用法

 

想要在现有的图片上添加另外一条线,可以使用hold语句,例如:

x = 0:pi/100:2*pi;

y = sin(x);

plot(x,y)

hold on

y2 = cos(x);

plot(x,y2,'r:')

legend('sin','cos') %为图片添加图例

MATLAB中plot函数的简单用法



使用plot3绘制三维图像

MATLAB中有许多函数可以用来绘制三维图像,在此仅对plot3函数进行简要介绍,有兴趣的同学可以自行学习。plot3函数的调用形式如下:

plot3(X, Y, Z,LineSpec)

例如:

z=0:pi/50:10*pi;

x=sin(z);

y=cos(z);

plot3(x,y,z)

MATLAB中plot函数的简单用法



matlab的legend用法


用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的运动情况。

legend函数的基本用法是:

LEGEND(string1,string2,string3, ...)

分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。

例如:

plot(x,sin(x),'.b',x,cos(x),'+r')

legend('sin','cos')这样可以把"."标识为'sin',把"+"标识为"cos"

还可以用LEGEND(...,'Location',LOC) 来指定图例标识框的位置

 

这些是Matlab help文件。后面一段是对应的翻译和说明

        'North'              inside plot box near top
        'South'              inside bottom
        'East'               inside right
        'West'               inside left
        'NorthEast'          inside top right (default)
        'NorthWest      

...

matlab绘图中legend的终极用法

 

高级用法1:指定legend显示的位置:

legend({'str1','str2','strn'},1);

legend({'str1','str2','strn'},2);

legend({'str1','str2','strn'},'Location','SouthEast');

高级用法2:指定显示某几条曲线的legend:

方法1:

例如你有25条曲线,想显示其中1,6,11,16,21的legend,则

for i = [2:5 7:10 12:15 17:20 22:25]
     set(get(get(H(i),'Annotation'),'LegendInformation'),'IconDisplayStyle','off');
end
legend('1','6','11','16','21');

方法2:

 H = plot(data);
legend(H([1 6 11 16 21],'1,'6','11’,'16','21');

高级用法3:legend横排

hl = legend(H([1 6 11 16 21],'1,'6','11’,'16','21');
set(hl,'Orientation','horizon')

高级用法4:不显示方框:

hl = legend(H([1 6 11 16 21],'1,'6','11’,'16','21');
set(hl,'Box','off');

 

 

matlab中legend函数在添加图例时的使用方法

功能 :

在图形上添加图例。该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。当所画的是区域(patch或surface对象)时,图例会在文字旁显示表面颜色。Matlab在一个坐标轴中仅仅显示一个图例。图例的位置有几个因素决定,像遮挡的对象等,用户可以用鼠标拖动图例到恰当的位置,双击标签可以进入标签编辑状态。 

 

用法:

legend('string1','string2',…) 用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例。 

legend(h,'string1','string2',…) 用指定的文字string在一个包含于句柄向量h中的图形显示图例。用给定的数据对相应的图形对象加上图例。 

legend(string_matrix) 用字符矩阵参量string_matrix的每一行字符串作为标签。 

legend(h,string_matrix) 用字符矩阵参量string_matrix的每一行字符串作为标签给包含于句柄向量h中的相应的图形对象加标签。 

legend(axes_handle,…) 给由句柄axes_handle指定的坐标轴显示图例。

 legend('off') 从当前的坐标轴,或是由axes-handle指定的坐标轴中除掉图例。

 legend(axes_handle,'off') 从由axes_handle指定的坐标轴中除掉图例。legend_handle = legend 返回当前坐标轴中的图例句柄,若坐标轴中没有图例存在,则返回空        向量。 

legend 对当前图形中所有的图例进行刷新。 

legend(legend_handle) 对由句柄legend_handle指定的图例进行刷新。

 

当在一个坐标系上画多幅图形时,为区分各个图形,Matlab提供了图例的注释说明函数。其格式如下:  

    legend(字符串1,字符串2,字符串3,…,参数)  

      参数字符串的含义如下表所示:  

 

  参数字符串                                      含  义  

0                              尽量不与数据冲突,自动放置在最佳位置  

1                                                          放置在图形的右上角 

2                                                          放置在图形的左上角    

3                                                          放置在图形的左下角

4                                                          放置在图形的右下角    

-1                              放置在图形视窗的外右边    

      此函数在图中开启了一个注释视窗,依据绘图的先后顺序,依据输出字符串对各个图形进行注释说明。如字符串1表示第一个出现的线条,字符串2表示第二个出现的线条,参数字符串确定注释视窗在图形中的位置。同时,注释视窗也可以用鼠标拖动,以便将其放置在一个合适的位置。 

 

【 例 】在同一坐标内,绘出两条函数曲线并有图解注释。

>>x=0:0.2:12; 

      >>plot(x,sin(x),‘-’,x,1.5*cos(x),‘:’) 

      legend(‘First’,‘Second’,-1);    %强行将注释视窗放在图形视窗的外右边。 

程序运行的结果如图所示:


原创粉丝点击