一、 基本绘图命令
1.plot命令
执行plot命令时,系统会自动创建一个新的图形窗口,若已经存在旧的窗口,则会在原有基础上进行绘画(覆盖)。
plot(x,y)
x,y必须是同维向量(都是列或行)。若x是向量,y是矩阵,则绘制多条曲线(列优先原则,即优先以列的数据对应)
此处x与y是竖着对应,即x=[2,3] <=> y=[1;3] y=[2;4]
若x是矩阵,y是向量,则以y为自变量。若x,y为同维矩阵,则两者列向量分别对应作图。
plot(x,y,LineSpec)
设置线的形状、颜色、标记等,类似于python,或者是python与其类似
plot(x1,y1,x2,y2,x3,y3…)
绘制多条曲线,每一对x,y后都可以加个LineSpec。等价于使用多个plot,每个plot后面加个hold on表示不进行覆盖。
plot(y,LineSpec)
若y为实数矩阵,则以每列元素的下标(从1开始)为横坐标。若y为复数矩阵,则以每个元素的实数部分为横坐标,等价于(plot(real(y),imag(y)))
plot(_,Name,Value)
可以对属性进行设置,如线条宽度等,具体Name属性有哪些
https://ww2.mathworks.cn/help/matlab/ref/matlab.graphics.chart.primitive.line-properties.html
注意2021a以前的版本语法是 "name",value 以后的版本是 name=value
plot修改属性
2.fplot命令
fplot专门用来绘制一元函数,因此图像比plot更加准确,且图像中平滑与陡峭处数据点分布也更加智能。
fplot(f)
一般写作 fplot(@(x) sin(x))这样,表示x是自变量,默认定义域为[-5,5],类似plot的也可以加上LineSpec
fplot(f,xinterval)
其实就是自己定义一个定义域,形如下:
定义域范围别加 “,”
3.ezplot命令
专门用于符号函数的绘图命令,但是不推荐用,完全可以用fplot
4.subplot命令
subplot(m,n,p)
将整个画板分割为m * n个小分区,然后在指定序号为p的区域画图。
subplot('Position',pos)
创建包含两个未与网格位置对齐的子图的图窗。为每个子图指定一个自定义位置
其中,pos的定义如下:
二、极坐标系下绘图
polarplot命令
polarplot(thea,rho)
thea表示弧度θ,rho表示每个点的半径值(其实就是ρ)
然后也当然可以设置Name,Value,LineSpec等
polarplot(rho)
不明确说明theta时,将自动等距分配。也就是这么多数据,一定要凑成360°
>>> polarplot(1:10:100,'-*')
注意:通过下面两条命令进行弧度与坐标的转换
- [theta,rho]=cart2pol(x,y)
- [x,y] = pol2cart(theta,rho)
三、半对数坐标下绘图
semilogx命令
semilogx用于绘制x为对数坐标,y为线性坐标的曲线
semilogx(x,y)
类似,什么LineSpec随便设置
semilogy命令
semilogy用于绘制x为线性坐标,y为对数坐标的曲线
semilogy(x,y)
类似,什么LineSpec随便设置
附:双对数坐标可以用函数loglog
四、两个纵坐标的图像
yyaxis命令
下设两个 yyaxis left 和 yyaxis right 分别用于画两个图像