一、plot函数语法
plot(x,y,s)
二、用坐标绘制图形
先看plot函数的基础部分:
plot(x,y)
其中,x为横坐标,y为纵坐标。若要使用plot函数绘制线段,首先需要给定x、y的值。
给变量赋值的语法为:
变量名 = [值1 值2 ... 值n];
因此,若要表示点A(1,1)和B(2,2),对应的语法为:
x = [1 2];y = [1 2];
注意:句尾分号的作用为不显示结果,不加分号则显示本行的结果。
用plot函数绘制线段AB,语法为:
x = [1 2];y = [1 2];plot(x, y)
效果如下:
可以看到,通过使用plot函数,我们已经绘制了AB线段。但仔细观察我们发现,虽然线段在x、y轴上的长度都是1,可是实际的长度并不相同。为此,我们可以添加一条axis equal语句来使图像的x、y轴的比例相同:
x = [1 2];y = [1 2];plot(x, y)axis equal;
现在我们看到,添加axis equal语句后,x、y轴的刻度范围不一定相同,但比例是一定相同的。现在,若要画一条折线ABC,C的坐标为(3,1),可以分别给x、y添加一个新值:
x = [1 2 3];y = [1 2 1];plot(x, y)axis equal;
运行,结果为:
现在,若要绘制一个三角形ABC,还需要将折线的首尾相连:
x = [1 2 3 1];y = [1 2 1 1];plot(x, y)axis equal;
运行,结果为:
四边形、五边形、... 、n边形也是同理。现在尝试画一个五角星:
x = [3 5 7 2 8 3];y = [3 9 3 7 7 3];plot(x, y)axis equal;
结果为:
图像的大概形状差不多,但还不是一个标准的五角星。下面介绍画图的第二种方法。
三、用函数绘制图形
若想要用函数绘制图形,需要先设置自变量x的范围、y关于x的函数关系式或x、y的参数方程。
方法一,使用y关于x的函数关系式:
首先来看定义变量x的范围的语法:
x = 初始值:步长:最终值;
初始值和最终值很好理解,步长的意思是从初始值到最终值的这条线上,每隔多长距离选取一个点。若步长为1,则代表,每隔1个单位长度选取一个点。在书写y关于x的关系式的时候,乘号不能省略。并且在matlab中,每个数都是一个矩阵,矩阵的幂运算用“^”运算符,涉及变量的幂运算时,要使用“.^”运算符。
下面,我们来绘制一条x在[1,10]上,y=2x的直线:
x = 1:1:10;y = 2*x;plot(x, y)axis equal;
运行效果如下:
学会如何绘制直线后,我们来学习如何绘制曲线。下面我们来尝试画一个圆:
我们知道,圆的一般方程是(x-a)²+(x-b)²=r²,那么圆心在(2,2),半径为1的圆的一般方程为:(x-2)²+(y-2)²=1。整理得:y关于x的函数关系式为:y=√1-(x-2)² + 2。编写程序为:
x = 0:0.5:5;y = sqrt(1-(x-2).^2)+2;plot(x, y)axis equal;
运行结果为:
为什么图像是这样呢?两侧是直线的原因是,圆心在(2,2),半径为1的圆,x的范围只能在[1,3]之间,因此其他位置是直线。不像圆的原因是,步长0.5对于这个图形来说太大了,应该缩短步长,才更接近于曲线。图像只有半个圆的原因是,根号下不能小于零,所以y的值只能大于等于零。现在我们来修改一下程序:
(注:绘制多个图像直接在plot函数的括号中再加一对x、y即可)
x = 1:0.01:3;y1 = sqrt(1-(x-2).^2)+2;y2 = -sqrt(1-(x-2).^2)+2;plot(x, y1, x, y2)axis equal;
运行结果为:
很好!这样看起来就像一个圆了!由此我们可以得知,步长越短,图像越接近于曲线。我们再来尝试第二种方法——参数方程:
我们知道,圆的参数方程为:
x = a + rcosθ
y = b + rsinθ
这次,我们来绘制圆心为(1,1),半径为2的圆。这次我们要先设置一个变量theta,代码如下:
theta = 0:pi/100:2*pi;x = 1+2*cos(theta);y = 1+2*sin(theta);plot(x, y)axis equal;
运行效果如下:
和预期的完全一致!看来你已经学会了第二种方法!
最后,我们来解决刚刚绘制五角星的问题。点围绕圆一共转了两圈,步长为4/5π。所以代码为:
theta = 0:4/5*pi:4*pi;x = 1+2*cos(theta);y = 1+2*sin(theta);plot(x, y)axis equal;
运行效果为:
已经是标准的五角星了!现在只需要旋转适当的角度就可以使五角星正过来:
theta = pi/10:4/5*pi:4*pi+pi/10;x = 1+2*cos(theta);y = 1+2*sin(theta);plot(x, y)axis equal;
运行效果为:
完美!接下来我们学习plot函数的更多用法:
四、绘制样式更丰富的图形
plot(x,y,s)函数的s部分可以设置线的颜色、点的形式、线的形式。s部分要用单引号(' ')引起来。
1、设置线的颜色:
b(bule):蓝色
g(green):绿色
r(red):红色
c(cyan):青色
m(magenta):洋红色
y(yellow):黄色
k(black):黑色
w(white):白色
2、设置点的样式:
.(点)
o(圈)
x(x标记)
+(加号)
*(星号)
s(正方形)
d(菱形)
v(下三角)
^(上三角)
<(左三角)
>(右三角)
p(五角星)
h(六角星)
3、设置线的样式:
-(实线)
:(点线)
-.(点虚线)
--(虚线)
(none)(隐藏线)
例如,要绘制红色,点为五角星,线为点虚线的线,语法为:
x = [1 2];y = [1 1];plot(x, y, 'rp-.')axis equal;
运行结果为:
本章完。
感谢阅读!