绘制图形的辅助操作
给图形添加标注
坐标控制
图形保持
图形窗口的分割等
1.图形标注
在绘制图形的同时,可以对图形加上一些说明。如图形名称、坐标轴说明以及图形某一部分的含义等,我们把这些操作统一称为添加图形标注。
title(图形标题)
xlabel(x轴说明)
ylabel(y轴说明)
text(x, y, 说明) //指定位置添加说明
legend(图例1, 图例2, …) //添加图例 线性,颜色等
(1)title函数
①title函数的基本用法
title(图形标题)
例1 绘制[-2π,2π]区间的正弦曲线并给图形添加标题。
>> x=-2*pi:0.05:2*pi;
>> y=sin(x);
>> plot(x,y)
>> title('y=sin(x)')
如果标题有多行,要用大括号括起来,字符串之间用逗号分隔。
>> title({'MATLAB', 'y=sin(x)'})
②在图形标题中使用LaTeX格式控制符(希腊字母,数学符号,公式等)
受LaTeX格式控制的部分要用大括号括起来。
上标与下标用^和_引导
③含属性设置的title函数
title(图形标题,属性名,属性值) 属性名和属性值成对出现
Color属性 :用于设置图形标题文本的颜色。
>> title('y=cos{\omega}t', 'Color','r') //省略默认为黑色
FontSize属性:用于设置标题文字的字号。
>> title('y=cos{\omega}t','FontSize',24) //省略是默认为11
(2)xlabel函数和ylabel函数、
用于设置横/纵坐标轴标签。
xlabel(x轴说明)
ylabel(y轴说明)
例:绘制[-2π,2π]区间的正弦曲线并给x轴添加标签。
>> x=-2*pi:0.05:2*pi;
>> y=sin(x);
>> plot(x,y)
>> title('y=sin(x)')
>> xlabel('-2\pi \leq x \leq 2\pi') // /leq输出小于等于符号
(3)text函数和gtext函数
text(x, y, 说明) //x,y用于设置文本出现的位置 说明与title的名称定义相同
gtext(说明)
在前面的图形中添加文字说明。
>> text(-2*pi, 0, '-2{\pi}')
>> text(3, 0.28, '\leftarrow sin(x)') // \leftarrow对应的标注效果为左箭头
TIP:gtext()函数没有坐标参数,十字光标跟随鼠标移动,单击鼠标即可放在对应十字光标处。
(4)legend函数
用户添加图例
legend(图例1, 图例2, …) //逗号分隔与title一致,顺序要与plot的输入参数一致
例2 绘制不同频率的正弦曲线并用图例标注曲线。
>> x = linspace(0, 2*pi, 100); //定义行向量x,存储数据点横坐标
>> plot(x, [sin(x); sin(2*x); sin(3*x)])
>> legend('sin(x)', 'sin(2x)', 'sin(3x)')
2.坐标控制
Matlab可以自动根据要绘制曲线的范围选择合适的坐标刻度。
axis函数
grid函数
box函数
有时绘图需要自己定义坐标系
(1)axis函数
axis函数的基本用法
axis([xmin,xmax,ymin,ymax,zmin,zmax])
绘制二维的时候,只给出前4个参数。
例:>> axis([-pi, pi, -4, 4])
axis的其他用法
axis equal:纵、横坐标轴采用等长刻度
axis square:产生正方形坐标系(默认为矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on:显示坐标轴
例子:画一个边长为1的正方形
>> x = [0, 1, 1, 0, 0];
>> y = [0, 0, 1, 1, 0];
>> plot(x,y)
>> axis([-0.1, 1.1, -0.1, 1.1]) //设置横纵坐标值范围
>> axis equal; //设置采用等长刻度。
(2)给坐标系加网格、边框
改变坐标系显示效果。
grid on/off 控制网格线。若程序中没有出现grid,默认不显示网格线。
grid 用于在两种状态之间进行切换。
box on/off 坐标系加边框。若程序中没有出现box,默认有边框线。
例子:
绘制sin x 、sin(2x)、sin(x/2)的函数曲线并添加图形标注。
x=linspace(0,2*pi,100); //0-2π区间100个元素
y=[sin(x); sin(2*x); sin(0.5*x)]; //三个与x相同大小的行向量构成的矩阵
plot(x,y)
axis([0 7 -1.2, 1.2]) //指定刻度范围
title('不同频率正弦函数曲线');
xlabel('Variable X');
ylabel('Variable Y');
text(2.5, sin(2.5), 'sin(x)'); //添加说明
text(1.5, sin(2*1.5), 'sin(2x)');
text(5.5, sin(0.5*5.5), 'sin(0.5x)');
legend('sin(x)','sin(2x)','sin(0.5x)')
grid on
3.图形保持
一般情况下,绘图命令每执行一次,就刷新一次当前执行窗口。叠加新图形。
hold on 控制保持原有图形
hold off 控制刷新图形窗口
hold 控制在两种状态之间进行切换。
例:用图形保持功能绘制两个同心圆。半径分别为1和2
t = linspace(0,2*pi,100); //先生成行向量t,存储各个数据点与x轴的角度。
x = sin(t); //取x
y = cos(t);
plot(x, y, 'b') hold on;
plot(2*x, 2*y, 'r--')
grid on
axis([-2.2 2.2 -2.2 2.2])
axis equal //显示正圆
4.图形窗口的分割
子图:同一图形窗口中的不同坐标系下的图形称为子图。
subplot函数
subplot(m, n, p)
其中,m和n指定将图形窗口分成m×n个绘图区,p指定当前活动区。 区号按行优先编号。
>> subplot(2,2,1);
>> x=linspace(0,2*pi,60);
>> y=sin(x);
>> plot(x,y);
>> title('sin(x)');
>> axis ([0,2*pi,-1,1]);
命令只作用于1区。
更灵活的分割。
x=linspace(0,2*pi,60);
subplot(2,2,1)
plot(x,sin(x)-1);
title('sin(x)-1');axis ([0,2*pi,-2,0])
subplot(2,1,2)
plot(x,cos(x)+1);
title('cos(x)+1');axis ([0,2*pi,0,2])
subplot(4,4,3)
plot(x,tan(x));
title('tan(x)');axis ([0,2*pi,-40,40])
subplot(4,4,8)
plot(x,cot(x)); title('cot(x)');axis ([0,2*pi,-35,35])