semilogx 多条曲线_MATLAB自学笔记(十五):二维图形绘制2

7.子图绘制

即在同一个图形窗口中同时绘制多幅相互独立的子图

subplot(m,n,k):将m*n幅子图中的第k幅图作为当前曲线的绘制地点。此种方法最为常用

subplot(‘position’,[left bottom width heigth]):在指定位置上生成子图。宽高取值范围均为[0,1],左下角坐标为(0,0)

8.交互式绘图

这里交互式绘图是指利用鼠标操作的图形操作指令

[x,y] = ginput(n):用鼠标从二维图形中获得n个点的坐标数据。只能应用于二维图形

gtext(‘text’):用鼠标把字符串或字符串元胞数组放置到图形中作为文字说明。可应用于二维图形以及三维图形

zoom xon:规定当前图形的x轴可以进行缩放。可应用于二维图形以及三维图形(zoom指令)

zoom yon:规定当前图形的y轴可以进行缩放

zoom on:规定当前图形可以进行缩放

zoom off:规定当前图形不可以进行缩放

zoom:在是否可以缩放之间进行切换

zoom out:使图形回归原始状态

zoom(factor):设置缩放变焦因子。默认为2

9.双坐标轴绘制

双坐标轴常被用来解决表示同一变量在两个不同量纲、不同量级的函数量的变化在同一图窗下显示的情况

plotyy(X1,Y1,X2,Y2):以左、右不同的纵轴分别绘制X1-Y1、X2-Y2两条曲线

plotyy(X1,Y1,X2,Y2,fun):以左、右不同的纵轴以fun指定的形式分别绘制X1-Y1、X2-Y2两条曲线

plotyy(X1,Y1,X2,Y2,fun1,fun2):左、右不同的纵轴分别以fun1,fun2指定的形式分别绘制X1-Y1、X2-Y2两条曲线

注:左侧的轴线用来描述X1-Y1曲线,右侧的轴线用来描述X2-Y2曲线。轴的范围与刻度值都是自动生成的,若需要人共设置,则与一般绘图指令相同

Python

figure

angl = 0 : 0.01*pi : 2*pi;

ampl = sin(0 : 0.01*pi : 2*pi);

z = ampl.*(cos(angl) + sqrt(-1)*sin(angl));

[AX,H1,H2] = plotyy(0:200, abs(z), 0:200, angle(z)*180/pi);

1

2

3

4

5

figure

angl=0:0.01*pi:2*pi;

ampl=sin(0:0.01*pi:2*pi);

z=ampl.*(cos(angl)+sqrt(-1)*sin(angl));

[AX,H1,H2]=plotyy(0:200,abs(z),0:200,angle(z)*180/pi);

10.fplot指令

plot指令是将用户指定或计算得到的数据转换为图形。若自变量的离散间隔不合理,其无法反应出函数的变化趋势

fplot则通过MATLAB平台内部设置的自适应算法来动态决定自变量的离散间隔。

当函数值变化缓慢时,离散间隔变大;反之变小

fplot(fun,limits):在limits定义的自变量的取值范围[xmin,xmax]内,或者在自变量与因变量的取值范围[xmin,xmax;ymin,ymax]内,绘制fun函数

fplot(fun,limits,LineSpec):在limits定义的取值范围内,在LineSpec所规定的线型、颜色、标记等属性下,绘制fun函数

fplot(fun,limits,tol):在limits定义的取值范围内,在tol规定的相对误差允许范围内,绘制fun函数

fplot(fun,limits,tol,LineSpec):在limits定义的取值范围内,在tol规定的相对误差允许范围内,在LineSpec所规定的线型、颜色、标记等属性下,绘制fun函数

fplot(fun,limits,n):在limits定义的取值范围内绘制fun函数,至少绘制n+1个点

注意:tol为相对允许误差范围,默认值为2e-3。 n的默认值为1,即fplot最小绘制两个点,其最大步长限制为(xmax-xmin)/n

Python

fplot(@sin,[-2*pi 2*pi])

grid on

title('sin(x) from -2\pi to 2\pi')

xlabel('x')

ylabel('y')

1

2

3

4

5

fplot(@sin,[-2*pi2*pi])

gridon

title('sin(x) from -2\pi to 2\pi')

xlabel('x')

ylabel('y')

11.ezplot绘图指令

ezplot指令用于绘制函数在某一自变量区域内的图形,其也需要对自变量的范围进行规定

ezplot(f)

ezplot(f, [min, max])

ezplot(f,[xmin, xmax, ymin, ymax])

ezplot(x, y)

ezplot(x, y, [min, max])

Python

ezplot('sin(x)^2 + 4*cos(y)^2 = 4', [-5 5 -1 1])

% axis square

1

2

ezplot('sin(x)^2 + 4*cos(y)^2 = 4',[-55-11])

%axissquare

12.特殊坐标轴绘制

为解决数据为对数时的问题,MATLAB中提供了3个函数

semilogx:用法与plot相同

semilogx(Y)

semilogx(X1, Y1, X2, Y2, …)

semilogx(X1, Y1, LineSpec1, X2, Y2, LineSpec2, …)

semilogx函数与plot对比

Python

x = 10.^(0.1 : 0.1 : 4); y = 1./(x+1000);

figure

subplot(1,2,1);semilogx(x,y,'+');title('y = (x+1000)^{-1}')

subplot(1,2,2);plot(x,y,'+');title('y = (x+1000)^{-1}')

1

2

3

4

x=10.^(0.1:0.1:4);y=1./(x+1000);

figure

subplot(1,2,1);semilogx(x,y,'+');title('y = (x+1000)^{-1}')

subplot(1,2,2);plot(x,y,'+');title('y = (x+1000)^{-1}')

13.二维特殊图形函数

bar函数用来绘制二维垂直条形图,用垂直条型显示向量或矩阵中的值

bar(y):为y中的元素画一个条形图

bar(x,y):在指定的横坐标x上画出y,其中x为严格单增的向量。若y为矩阵,则bar把矩阵分解成几个行向量,在指定的横坐标出分别画出

bar(…, ‘color’):‘color’定义条的颜色

Python

x = -2:2;

y = magic(5);

subplot(1,2,1), bar(x', y', 'stacked')

xlabel('x'), ylabel('y'),colormap(cool)

legend('因素1','因素2','因素3')

subplot(1,2,2), barh(x', y', 'grouped')

xlabel('y'), ylabel('x')

1

2

3

4

5

6

7

x=-2:2;

y=magic(5);

subplot(1,2,1),bar(x', y','stacked')

xlabel('x'),ylabel('y'),colormap(cool)

legend('因素1','因素2','因素3')

subplot(1,2,2),barh(x', y','grouped')

xlabel('y'),ylabel('x')

pie函数用来绘制饼状图

pie(x):绘制x的饼状图

pie(x,explode):explode是与x同维的矩阵,若其中有非零元素,x矩阵中相应的位置的元素在饼图中对应的扇形将向外突出

pie(…, labels):labels用于定义相应块的标签

pie(axes_handle, …):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄

h = pie(…):返回绘制饼图的句柄

Python

close all

x = [1 5 0.5 3.5 2];

explode = [0 1 0 0 0];

pie(x, explode)

colormap jet

figure

pie3(x,explode) %绘制三维饼图

clolrmap hsv

1

2

3

4

5

6

7

8

closeall

x=[150.53.52];

explode=[01000];

pie(x,explode)

colormapjet

figure

pie3(x,explode)%绘制三维饼图

clolrmaphsv

hist函数用于绘制二维条型直方图。直方图可以显示数据的分布情况

n = hist(y):把y中的元素放入等距的是个条形中,且返回每一个条形中的元素个数

n = hist(y,x):参量x为向量,把y中元素放到m(m = length(x))个由x中元素指定的位置为中心的条形中

n = hist(y,nbins):参量nbins为标量,用于指定条形的数目

[n,out] = hist(…):返回向量n与包含频率计数与条形的位置向量xout,用户可以用命令bar(xout,n)画出条形直方图

hist(…):生成直方图,但不输出

hist(axes_handle, …):将图形绘制到坐标轴句柄axes_handle中,而不是当前坐标轴句柄

Python

x = -4 : 0.1 : 4;

y = randn(5000,1);

hist(y,x)

1

2

3

x=-4:0.1:4;

y=randn(5000,1);

hist(y,x)

scatter函数用于绘制散点图

scatter(x,y):以x、y的值为横纵坐标,绘制散点图

Python

figure

x = randn(8,1);

y = randn(8,1);

subplot(121);scatter(x,y);

subplot(122);scatter(x,y,[],[1 0 0],'fill')

1

2

3

4

5

figure

x=randn(8,1);

y=randn(8,1);

subplot(121);scatter(x,y);

subplot(122);scatter(x,y,[],[100],'fill')

赞赏作者

微信赞赏支付宝赞赏

喜欢 (2)or分享 (0)

你可能感兴趣的:(semilogx,多条曲线)