一、基本介绍
二维高层绘图的基本函数:
- 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)