• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab可视化小结

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

1. plot指令的基本调用格式

(1)plot(x)

x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线

x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。

x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线

(2)plot(x, y)

x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线

x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线

x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。

3)plot(x1, y1, x2, y2, …)

绘制以x1为横坐标、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。

其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。

例子:

clc,clear,close;

x = 0:pi/100:2*pi;

y = 2*exp(-0.5*x).*sin(2*pi*x);

plot(y)

subplot(1,3,1); plot(y); title(\'plot(x)\');

subplot(1,3,2); plot(x,y); title(\'plot(x,y)\');

subplot(1,3,3); plot(x,y,[0:7],(2*[0:7] + 1)/100); title(\'plot(x1,y1,x2,y2)\');

 

 

 

 

2. hold on hold off 在同一张图中多次绘制

例子

t = 0:pi/100:pi;

y1 = sin(t)\' * [1, 0];

y2 = sin(t).*sin(3*t).*sin(-3*t).*sin(-t);

plot(t,y1,\'r-\');

hold on

plot(t,y2,\'b\');

hold off

 

 

 

 

 

3. axis函数控制坐标轴

axis[a b c d] : 控制范围 a<=x<=b, c<=y<=d

例子

x = linspace(-15,15,200);

y = sin(4*x)./exp(.1*x);

plot(x,y,\'-r\')

axis([-12 12 0 1.5])

 

4. stem画散点图

x = [0:pi/20:2*pi]\';

y = [cos(x).*sin(x), sin(x)];

stem(x,y)

 

5. stairs画阶梯图

x = [0:pi/20:2*pi]\';

y = [cos(x).*sin(x), sin(x)];

hold on

stem(x,y);

stairs(x,y,\'g\');

hold off

 

 

 

6. plotyy指令画双纵坐标

x = 0:pi/100:2*pi;

y = 2*exp(-0.5*x).*sin(2*pi*x);

plotyy(x,y,[0:7],2*[0:7] + 1)

 

 

 

7. 制图辅助操作

 

 

 

 

 

 

 

 

 

 

t=(0:15)*2*pi/15;

y=sin(t);

subplot(3,2,1), plot(t, y); title(\'plot(t, y)\')

subplot(3,2,2), plot(t, y, \'o\'); title(\'plot(t, y, o)\')

subplot(3,2,3), plot(t, y, \'k:\'); title(\'plot(t, y, k:)\')

subplot(3,2,4), plot(t, y, \'k-.*\'); title(\'plot(t, y, k-.*)\')

subplot(3,2,5), plot(t, y, \'m--d\'); title(\'plot(t, y, m--d)\')

subplot(3,2,6), plot(t, y, \'r-x\'); title(\'plot(t, y, r-x)\')

 

8. 刻度、分格线和坐标框

grid on         画出分格线

grid off         不画分格线

box on          控制加边框线

box off                 控制不加边框线

刻度设置

set(gca, ‘xtick’, xs, ‘ytick’, ys)

xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。

例题:

t = 6*pi*(0:100)/100;

y=1-exp(-0.3*t).*cos(0.7*t);                         

plot(t,y,\'r-\');

grid on;

box on;

set(gca,\'xtick\',[pi,2.5*pi,4*pi],\'ytick\',[0.85,1,1.05,1.245]);

 

 

 

 

 

 

9. 图形标识

图名(title)

坐标轴名(xlabel、ylabel)

图形文本注释(text)

图例(legend)

例(SIR,ode):

A = 0.4;

B = 0.1;

I = 0.4;

S = 0.5;

tspan = [0 50];

y0 = [I S];

[t, y] = ode45(@(t,y)odefun(t,y,A,B), tspan, y0);

r = 1-y(:,1)-y(:,2);

plot(t,y(:,1),\'-o\',t,y(:,2),\'-.\',t,r,\'g\');

hold on;

legend(\'生病人数:i(t)\',\'健康人数:s(t)\',\'移除人数:r(t)\',\'Location\',\'Best\');

ylabel(\'占人口比例%\');

xlabel(\'时间t\');

str = [\'接触数λ/μ:\',num2str(A/B),\' 初始生病人数:\',num2str(I),\',初始健康人数:\',num2str(S)];

text(15,0.4,str,\'FontSize\',10);

title(\'SIR模型(ode)\');

 

function dydt = odefun(t,y,A,B)

dydt = zeros(2,1);

dydt(1) = A*y(1)*y(2) - B*y(1);

dydt(2) = -A*y(1)*y(2);

end

 

10. 直方图 bar

垂直直方图

x = -3:0.2:3;

bar(x,x.^2,\'r\')

 

 

 

 

累计式

x=[1 2 3];

y=[1 3 2; 3 1 2; 2 1 3];

bar(x, y, \'stack\');

legend(\'part1\', \'part2\', \'part3\');

 

 

 

 分组式

x=[1 2 3];

y=[1 3 2; 3 1 2; 2 1 3];

bar(x, y, \'group\');

legend(\'part1\', \'part2\', \'part3\');

 

水平直方图 barh

累计式

分组式

x=[1 2 3];

y=[1 3 2; 3 1 2; 2 1 3];

barh(x, y, \'group\');

legend(\'part1\', \'part2\', \'part3\');

 

 

 

 

11. 饼图pie

x=[1,2,3,4,5];

subplot(1,2,1);

pie(x,[1 0 0 0 0]);

legend({\'part1\',\'part2\',\'part3\',\'part4\',\'part5\'},\'Location\',\'Best\');

subplot(1,2,2);

y=int8(x==max(x))

pie3(x,y)

colormap(cool

 

 

 

12. 离散杆图stem

x = 0:0.1:2;

y = sin(x);

stem(x,y,\'r\');

 

 

13.极坐标polar

theta = 0:0.01:2*pi;

rho = sin(2*theta).*cos(2*theta);

polar(theta,rho,\'-.r\');

 

 

 

三维绘图

1. plot3 plot类似 :x,y,z 指定为相同长度的向量

t=(0:0.02:2)*pi;

x=sin(t);

y=cos(t);

z=cos(2*t);

plot3(x,y,z,\'-\',x,y,z,\'rh\');

grid on;

 

2. 三维网线图(mesh

需要先用meshgrid产生“格点”矩阵

3. 曲面图(surf

需要先用meshgrid产生“格点”矩阵

x=-5:0.1:5;

y=-5:0.1:5;

[x,y]=meshgrid(x,y);           

z=sin(x).*cos(y);                     

subplot(1,2,1), mesh(x,y,z);title(\'mesh\');

subplot(1,2,2), surf(x,y,z);title(\'surf\');   

colormap(cool);

 

 

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab画图实现数据可视化发布时间:2022-07-18
下一篇:
matlab矢量场数值可视化(动态数值模拟)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap