一、基本介绍
二维高层绘图的基本函数:
- plot函数
二维绘图的辅助操作:
- 标注(图形名称,坐标轴名称,曲线标注,图例)
- 坐标轴保持
- 图形保持(同一座标绘制多个图形)
下面来看一下plot函数的使用。
基本用法:plot(x,y);
要求:x和y为相同长度的向量。
特殊用法:
(1)x为向量,y为矩阵,其中一维与x长度相同,则绘制多条不同色彩的曲线(颜色怎么确定?);
(2)x和y为同维的矩阵,以对应列绘制不同色彩的曲线;
(3)plot有一个参数,若x为实数向量,则绘制折线图,若x为复数向量,则以实部和虚部为横纵坐标绘图;
(4)多个输入参数;
(5)曲线选项
下面来看一下具体的使用。
我们先来绘制一个正弦函数,绘制0~2π之间的内容。
x = 0:0.01:2*pi; y = sin(x); plot(x,y);
运行一下可以看见绘制的正弦函数:
当然也可以同时绘制出两条直线,使用不同颜色绘制多条曲线:
x = 0:0.01:2*pi; y = sin(x); y1 = sin(x); y2 = cos(x); z = [y1 ; y2]; plot(x,z);
绘图的效果如下:
再比如将z多设置几个行向量:
x = 0:0.01:2*pi; y = sin(x); y1 = sin(x); y2 = cos(x); y3 = exp(x); y4 = x; y5 = tan(x); z = [y1;y2;y3;y4;y5]; plot(x,z);
画图的时候依旧是多种颜色绘制:
当然也可以多弄几条做出风骚的界面效果:
我们需要将矩阵转置,绘制出两条曲线:
% 两个参数都是矩阵 x1 = 0:0.01:2*pi; x2 = -pi:0.01:pi; x = [x1; x2]';%转置 y1 = cos(x1); y2 = sin(x2); y = [y1; y2]';%转置 plot(x, y)
绘制的图形如下:
接下来看一下plot只有一个参数的情况。
我们可以用linespace产生行向量:
% plot只有一个参数 x = linspace(0, 2*pi, 200); y = sin(x); plot(y) y2 = cos(x); y3 = y + i*y2; plot(y3) axis equal
如果只有一个参数,那么绘图的时候将用y的每一个点做横坐标:
下面来看一下复数的绘制:
x = linspace(0, 2*pi, 200); y = sin(x); y2 = cos(x); y3 = y + i*y2; plot(y3) axis equal
绘制的图形会以y的实部绘制横坐标,以y的虚部绘制纵坐标,加上axisequal是坐标轴控制:
下面来看下plot有多个参数。
x1 = linspace(0, 2*pi, 200); x2 = linspace(0, 2*pi, 100); y1 = cos(x1); y2 = sin(x2); plot(x1, y1, x2, y2)
y1是x1的余弦,y2是x2的正弦,我们可以用plot的多参数功能来绘制:
然后是plot的参数问题。
% plot含有的曲线选项 x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y, 'k') % r g y m k b,更改绘制曲线的颜色 plot(x, y, 'p') % * . p < >使用星,点,五角星,三角号进行标注 plot(x, y, ':') % - -- -. :虚线或者实线 plot(x, y, 'r*:')%也可以组合使用
二、图形的标注。
标注就是指明横纵坐标的名称,比如下面这段代码:
x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y) xlabel('x') ylabel('y') title('正弦');
执行的效果就是这样的:
还有很多其他标注,比如text标注:
x = linspace(0, 2*pi, 100); y = sin(x); plot(x, y) xlabel('x') ylabel('y') title('正弦'); text(2, 0.3, 'y = xin(x)'); text(5, 0.5, 'x_2')
效果如下所示:
还有一种标注就是图例:
x1 = linspace(0, 2*pi, 200); x2 = linspace(0, 2*pi, 100); y1 = cos(x1); y2 = sin(x2); plot(x1, y1, x2, y2) legend('cos', 'sin');
效果就是在右上角会出现图例的说明,这个用底层绘图可以改变坐标:
绘制两条图线的时候会发现第一条曲线消失了,这是因为没有开启图形保持,可以用hold on开启,hold off关闭:
%% 图形保持 x = 0:0.1:2*pi; y1 = sin(x); y2 = cos(x); hold on plot(x, y1, 'r'); plot(x, y2, 'g'); hold off
下面来说一下窗口的分割,比如想在窗口的四个角落绘制图形,可以使用subplot函数:
%% 窗口分割
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
y4 = exp(x);
subplot(2, 2, 1)%2*2的小格,绘制第一个格
plot(x, y1);
subplot(222)%可以分开,也可以连着写
plot(x, y2)
subplot(223)
plot(x, y3)
subplot(224)
plot(x, y4)