资源描述
008. 二维绘图(极坐标、隐函数等)
一.极坐标图形
调用格式为:polar(t, r, ‘选项’)
其中,t为极角,r为极径,选项的使用和plot()类似。
例1 画半径为1的圆
t = 0:0.01:2*pi;
a = 1;
r5 = ones(size(t));
polar(t,r5,'r');
运行结果:
例2 阿基米德螺线 r = at
t = 0:0.01:2*pi;
a = 2;
r1 = a.*t;
polar(t, r1, 'r');
运行结果:
例3 心形线 r = a(1+cos t)
t = 0:0.01:2*pi;
a = 2;
r2 = a.*(1+cos(t));
polar(t, r2, 'r');
运行结果:
例4 对数螺线 r = eat
t1 = -4*pi:pi/50:4*pi;
a1 = 0.2;
r3 = exp(a1.*t1);
polar(t1,r3);plot(x,y);
运行结果:
例 5 同极坐标图下画多个极坐标函数曲线:
(高数习题册Ch 6 A. 12题)
【注:polar() 没有多输出变量形式】
t = 0:pi/100:2*pi;
r6 = sqrt(2).* sin(t);
r7 = sqrt(abs(cos(2.* t)));
polar(t,r6,'r');
hold on
polar(t,r7,'g');
hold off
运行结果:
二、其他形式的坐标图
在线性直角坐标中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别为:
bar(x, y, ‘选项’)——条形图
stairs(x, y, ‘选项’)——阶梯图
stem(x, y, ‘选项’)——杆图
用法与polar()函数类似。
fill(x1, y1, ‘选项1’, x2, y2, ‘选项2’, …)——序依次用直线段连接x, y对应元素定义的数据点。
例6条形图、填充图、阶梯图和杆图示例
x=0:0.35:7;
y=2*exp(-0.5*x);
subplot(2,2,1);
bar(x,y,'g');
title('bar(x,y,''g'')');
axis([0, 7, 0 ,2]);
subplot(2,2,2);
fill(x,y,'r');
title('fill(x,y,''r'')');
axis([0, 7, 0 ,2]);
subplot(2,2,3);
stairs(x,y,'b');
title('stairs(x,y,''b'')');
axis([0, 7, 0 ,2]);
subplot(2,2,4);
stem(x,y,'k');
title('stem(x,y,''k'')');
axis([0, 7, 0 ,2]);
运行结果:
三、对数坐标图
对数坐标系其实就是对正常坐标系的一个变换
比如正常坐标系中的自变量和变量为x和y,而对数坐标系中的自变量和变量为x’和y’那么有x’=logx, y’=logy
在实际应用中,经常用到对数坐标图,用对数坐标系有什么好处呢?例如,应用对数坐标系,能够较好反映股票的实际盈亏幅度:
假定某一股票连续上涨,从6元涨到12元,每天涨1元,在普通坐标系中画出的就是6条一样长的阳线。而在对数坐标系中,由于第一根阳线从5元到6元涨幅为20%,最后一根阳线从11元到12元涨幅为10%,因此最后一根阳线长度是第一根K线的一半。
【用法同plot()】:
semilogx(x1, y1, ‘选项1’, x2, y2, ‘选项2’, …)
——半对数坐标:x轴对数刻度,y轴直线刻度;
semilogy(x1, y1, ‘选项1’, x2, y2, ‘选项2’, …)
——半对数坐标:x轴直线刻度,y轴对数刻度;
loglog(x1, y1, ‘选项1’, x2, y2, ‘选项2’, …)
——对数坐标:x轴、y轴均为对数刻度。
例7 对数坐标图以及与直角坐标对比
x=0:0.1:10;
y=10*x.*x;
subplot(2,2,1);
plot(x,y);
title('plot(x,y);');
grid on;
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
运行结果:
四、绘制隐函数与指定函数的图形
1. 显函数、隐函数、参数方程——ezplot()
① ezplot(‘f(x)’, [a,b])——在x∈[a,b]上绘制显函数y=f(x)的图形;
② ezplot(‘f(x,y)’, [x0,x1,y0,y1])
——在x∈[x0,x1], y∈[y0,y1]上绘制隐函数f(x,y)=0的图形;
③ ezplot(‘x(t), y(t)’, [t0,t1])
——在t∈[t0,t1]上绘制参数方程x=x(t), y=y(t) 的图形。
2. 绘制指定函数名(m文件)的图形——fplot()
fplot(‘fun’, [x0,x1])
——表示绘制函数名fun的函数在区间[x0,x1]的图形。
注:(1)fun必须是M文件的函数名或是独立变量为x的字符串;
(2)fplot() 不能画参数方程和隐函数图形,但在一个图上可以画多个图形。
例8 ezplot()与fplot() 示例
subplot(2,3,1);
ezplot('sin(x)',[0,2*pi]);
subplot(2,3,2);
ezplot('cos(t)^3', 'sin(t)^3', [0,2*pi]); % 星形线
subplot(2,3,3);
ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])
% 隐函数 exp(x)+sin(x*y) = 0
subplot(2,3,4);
fplot('myfun1',[-1,2]);
% 需要先创建函数文件myfun1.m,其内容为:
% function Y=myfun1(x)
% Y=exp(2*x)+sin(3*x.^2);
subplot(2,3,5);
fplot('tanh',[-2,2]);
subplot(2,3,6);
fplot('[tanh(x),sin(x),cos(x)]',[-2*pi,2*pi,-2*pi,2* pi]);
运行结果:
五、其他形式的二维图形
饼型图、向量图
例9 (1)某次考试优良、良好、中等、及格、不及格的人数为7、17、23、19、5,试用饼形图进行成绩统计分析
(2)绘制复数的向量图:3+2i、5.5-i、-1.5+5i
subplot(1,2,1);
pie([7,17,23,19,5]);
title('饼图');
legend('优秀','良好','中等','及格','不及格');
subplot(1,2,2);
compass([3+2i,5.5-i,-1.5+5i]);
title('向量图');
运行结果:
展开阅读全文