MATLAB绘图

二维曲线

plot函数

plot函数的基本用法

plot(x, y)

其中,x、y 分别存储 x 坐标和 y 坐标。

绘制一条折线:

1
2
3
x = [1,2,3,4];
y = [7,3,9,1];
plot(x,y)

最简单的plot函数调用格式

plot(x)

当 x 是实向量时,则以该向量元素的下标为横坐标,元素的值为纵坐标,绘制曲线。

当 x 是复向量时,则以该向量元素的实部为横坐标,虚部为纵坐标,绘制曲线。

1
2
3
4
x = [1,2,4,6];
y = [6,1,8,3];
c = complex(x, y);
plot(c)

plot(x, y)函数参数的变化形式

一般地,x、y 是长度相等的向量。

当 x 是向量,y 是矩阵时:

如果矩阵 y 的列数等于 x 的长度,则以向量 x 为横坐标,以 y 的每个行向量为纵坐标绘制曲线,曲线的条数等于 y 的行数。

如果矩阵 y 的行数等于 x 的长度,则以向量 x 为横坐标,以 y 的每个列向量为纵坐标绘制曲线,曲线的条数等于 y 的列数。

1
2
3
x = linspace(0,2*pi,100);
y = [sin(x);sin(2*x);sin(x/2)]; # y是一个矩阵
plot(x,y)
1
2
3
4
5
t = 0:0.01:2*pi;
t1 = t';
x = [t1,t1,t1];
y = [sin(t1),sin(2*t1),sin(0.5*t1)];
plot(x,y)

含多个输入参数的plot函数

ploy(x1, y1, x2, y2, … xn, yn)

其中,每一向量对构成一组数据的横、纵坐标,绘制一条曲线。

1
2
3
4
t1 = linspace(0,2*pi,10);
t2 = linspace(0,2*pi,20);
t3 = linspace(0,2*pi,100);
plot(t1,sin(t1),t2,sin(t2)+1,t3,sin(t3)+2)

含选项的plot函数

plot(x, y, 选项)

1
2
3
线型:"-"(实线), ":"(虚线), "-."(点画线), "--"(双画线)
颜色:"r"(红), "g"(绿), "b"(蓝), "w"(白), "k"(黑)
数据点标记:"*"(星号), "o"(圆圈), "s"(方块), "p"(五角星), "^"(朝上三角符号)
1
2
3
4
5
6
x = (0:pi/50:2*pi)';
y1 = 2*exp(-0.5*x)*[1,-1];
y2 = 2*exp(-0.5*x).*sin(2*pi*x);
x1 = 0:0.5:6;
y3 = 2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp')

fplot函数

fplot函数的基本用法

fplot(f, lims, 选项)

其中,f 代表一个函数,通常采用函数句柄的形式。lims 为 x 轴的取值范围,用二元向量 [xmin, xmax] 描述,默认值为 [-5, 5]。选项定义与 plot 函数相同。

1
fplot(@(x)sin(1./x),[0,0.2],'b')

双输入函数参数的用法

fplot(funx, funy, tlims, 选项)

其中,funx、funy 代表函数,通常采用函数句柄的形式。tlims 为参数函数 funx 和 funy 的自变量的取值范围,用二元向量 [tmin, tmax] 描述。

1
fplot(@(t)t.*sin(t),@(t)t.*cos(t),[0,10*pi],'r')

绘制图形的辅助操作

图形标注

title(图形标题)

xlabel(x 轴说明)

ylabel(y轴说明)

text(x, y, 图形说明)

legend(图例1, 图例2, …)

title函数

title函数的基本用法

1
2
3
4
x = -2*pi:0.05:2*pi;
y = sin(x);
plot(x, y);
title({'MATLAB', 'y=sin x'}) # 有多行标题时要用{}

在图形标题中使用LaTeX格式控制符

1
2
3
4
title('y=cos{\omega}t')
title('y=e^{axt}')
title('X_{1}{\geq}X_{2}')
title('{\bf y=cos{\omega}t + {\beta}}')
1
2
3
\bf 加粗
\it 斜体
\rm 正体

含属性设置的title函数

title(图形标题,属性名,属性值)

Color属性:

1
title('y=sin x','Color','r')

FontSize属性:

1
title('y=sin x','FontSize',24)

xlabel和ylabel

1
2
3
4
5
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')

text函数和gtext函数

text(x, y, 说明)

gtext(说明)

1
2
3
>> text(-2*pi, 0, '-2{\pi}')
>> text(3, 0.28, '\leftarrow sin(x)')
>> gtext('\leftarrow sin(x)')

legend函数

legend(图例1, 图例2, …)

1
2
3
x = linspace(0,2*pi,100);
plot(x,[sin(x);sin(2*x);sin(3*x)])
legend('sin(x)','sin(2x)','sin(3x)')

坐标控制

axis函数

axis([xmin, xmax, ymin, ymax, zmin, zmax])

1
axis([-pi,pi,-10,10])

axis equal:纵、横坐标轴采用等长刻度

axis square:产生正方形坐标系(默认为矩形)

axis auto:使用默认设置

axis off:取消坐标轴

axis on:显示坐标轴

给坐标系加网格和边框

网格

grid on:显示网格

grid off:不显示网格

grid:在两种状态下切换

边框

box on

box off

box

一般来说,绘图命令每执行一次,就刷新一次图形窗口,原有图形不会保持。要想保持原有图形,可以用图形保持命令:

hold on

hold off

hold

1
2
3
4
5
6
7
8
t = linspace(0,2*pi,100);
x = sin(t); 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 # 显示正圆而不是椭圆

图形窗口的分割

子图:同一图形窗口中的不同坐标系下的图形称为子图。

subplot函数

subplot(m, n, p):其中,m 和 n 指定将图形窗口分成 m * n 个绘图区,p 指定当前活动区。

1
2
3
4
5
6
7
8
9
10
11
12
13
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)');
subplot(4,4,8)
plot(x,cot(x))
title('cot(x)')

其他坐标系下的二维曲线图

对数坐标图

semilogx(x1, y1, 选项1, x2, y2, 选项2, …)

semilogy(x1, y1, 选项1, x2, y2, 选项2, …)

loglog(x1, y1, 选项1, x2, y2, 选项2, …)

1
2
3
4
5
6
7
8
9
10
11
12
13
x = 0:0.1:10;
y = 1./x;
subplot(2, 2, 1);
plot(x, y)
title('plot(x,y)'); subplot(2, 2, 2);
semilogx(x, y)
title('semilogx(x,y)'); grid on
subplot(2, 2, 3);
semilogy(x, y)
title('semilogy(x,y)'); grid on
subplot(2, 2, 4);
loglog(x, y)
title('loglog(x,y)'); grid on

极坐标图

polar(theta, rho, 选项)

其中,theta 为极角,rho 为极径,选项的内容与 plot 函数相同。

绘制心形线:

1
2
3
4
5
6
7
8
t = 0:pi/100:2*pi;
r = 1 - sin(t);
subplot(1, 2, 1)
polar(t, r)
subplot(1, 2, 2)
t1 = t - pi/2;
r1 = 1 - sin(t1);
polar(t, r1)
Author

preccrep

Posted on

2020-07-16

Updated on

2020-07-19

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.