matlab绘图与可视化

1、设置图形对象属性值

set(h,'属性名称','属性值')

>> subplot(,,);
h1=line([ ],[ ]);
text(,0.5,'unchange');
subplot(,,);
h2=line([ ],[ ]);
set(h2,'linewidth',);
text(,0.5,'change');

2、基本二维绘图函数

  1. plot

  matlab绘图与可视化

x=:0.25:*pi;
y=sin(x);
plot(x,y,'-ro','linewidth',,'markeredgecolor','b','markerfacecolor','0.49,1,0.65','markersize',);
>> xlabel('x');
>> ylabel('y')

  matlab绘图与可视化

  2.  loglog:双对数坐标绘图

>> x=logspace(-,);
loglog(x,exp(x),'-s');
grid on
xlabel('x')
ylabel('y')

  matlab绘图与可视化

  3.  semilogx,semilogy:半对数坐标绘图

>> x=-:0.001:;
semilogy(x,.^x);

  matlab绘图与可视化

  4.  polar:极坐标绘图

>> t=:0.01:;
polar(t,sin(*t).*cos(*t),'--.g')

  matlab绘图与可视化

  5.  plotyy:双纵坐标绘图

>> x=:0.1:;
>> y1=*exp(-0.05*x).*sin(x);
>> y2=0.8*exp(-0.5*x).*sin(*x);
>> ax=plotyy(x,y1,x,y2,'plot');xlabel('x');
>> set(get(ax(),'ylabel'),'string','left y');
>> set(get(ax(),'ylabel'),'string','right y');

  matlab绘图与可视化

3、二维图形修饰和添加注释(help+...)

  1. hold:图形保持
  2. axis:设置坐标系的刻度及显示方式
  3. box:显示或隐藏坐标框
  4. grid:为当前坐标系添加或消除网格
  5. title:添加标题
  6. xlabel、ylabel:为当前坐标轴添加标签
  7. text:在当前坐标系中添加文本对象
  8. gtext:在当前坐标系中交互式添加文本对象
  9. legend:在当前坐标系中添加 line 对象和 patch 对象的图形标注框
  10. annotation:在当前图形窗口建立注释对象(annotation对象)
  11. subplot:绘制子图,即在当前图形窗口以平铺的方式创建多个坐标系
>> t=linspace(,*pi,);
>> x=cos(t);
>> y=sin(t);
>> plot(t,x,'b:','linewidth',);
>> hold on;
>> plot(t,y,'r-.','linewidth',);
>> plot(x,y,'g-','linewidth',2.5);
>> axis equal;
>> xlabel('X');
>> ylabel('Y');
>> legend('x=cos(t)','y=sin(t)','x^2+y^2=1','location','northeast');

  matlab绘图与可视化

>> p=[ ; ];
r=;
[v,d]=eig(p);%求特征值,化为标准方程
a=sqrt(r/d());%椭圆长半轴
b=sqrt(r/d());
t=linspace(,*pi,);
xy=v*[a*cos(t);b*sin(t)];
plot(xy(,:),xy(,:),'k','linewidth',);
h=annotation('textarrow',[0.606 0.65],[0.55 0.65]);
set(h,'String','3x^2+2xy+4y^2=5','FontSize',);
h=title('tuo yuan qu xian','FontSize',,'FontWeight','bold');%加粗
set(h,'Position',[-0.00345622 1.35769 1.00011]);
axis([-1.5 1.5 -1.2 1.7]);
xlabel('X');
ylabel('Y');

  matlab绘图与可视化

>> a=[-19.6749 22.2118 5.0905];
x=:0.01:;
y=a()+a()/*(x-0.17).^+a()/*(x-0.17).^;
plot(x,y);
text('interpreter','latex','string',['$$ -19.6749+\frac{22.2118}{2}(x-0.17)^2'...])
'+\frac{5.0905}{4}(x-0.17)^4 $$'],'position',[0.05,-],'fontsize',);

  matlab绘图与可视化

  • \frac{22.2118}{2}:22.2118 / 2
  • \alpha:α
  • \beta:beta

  help text properties

4、修饰图形

>> x=linspace(,*pi,);
>> y=sin(x);
>> h=plot(x,y);
>> grid on;
>> set(h,'color','k','LineWidth',);
>> xticklabel={'','pi/2','pi','3pi/2','2pi'};
>> set(gca,'xtick',[:pi/:*pi],'XTickLabel',xticklabel,'TickDir','out');
>> xlabel('0\leq\theta\leq2\pi');
>> ylabel('sin(\theta)');
>> text(*pi/,sin(*pi/),'\leftarrow sin(8\pi\div 9)','HorizontalAlignment','left');
>> axis([ *pi - ]);

  matlab绘图与可视化

5、常用统计绘图函数

matlab绘图与可视化

>> x=normrnd(,,,);  %产生1000个标准正态分布随机数
hist(x,);%绘制直方图
xlabel('样本数据');
ylabel('频数');
figure;      %新建一个图形窗口
cdfplot(x)

matlab绘图与可视化matlab绘图与可视化

matlab绘图与可视化

>> subplot(,,);
>> f=@(x)*sin(x)./x;%定义匿名函数
>> fplot(f,[-,]);
>> title('y=200*sin(x)/x');
>>
>> subplot(,,);
>> ezplot('x^2+y^2=1',[-1.1 1.1]);
>> axis equal;
>>
>> subplot(,,);
>> ezpolar('1+cos(t)');
>>
>> subplot(,,);
>> x=[ ];
>> name={'a','b','c','d','e'};
>> explode=[ ];
>> pie(x,explode,name);
>>
>> subplot(,,);
>> stem(-*pi:0.5:*pi,sin(-*pi:0.5:*pi));
>>
>> subplot(,,);
>> stairs(-*pi:0.5:*pi,sin(-*pi:0.5:*pi));
>>
>> subplot(,,);
>> z=eig(randn(,));
>> compass(z);
>>
>> subplot(,,);
>> theta=(-::)*pi/;
>> r=*ones(size(theta));
>> [u,v]=pol2cart(theta,r);
>> feather(u,v);
>>
>> subplot(,,);
>> t=(/:/:)'*2*pi;
>> fill(sin(t),cos(t),'r');
>> axis square;

matlab绘图与可视化

5、三维图形绘制

matlab绘图与可视化

利用 mesh 和 surf 之前,应先产生图形对象的网格数据 --> meshgrid

>> t=linspace(,*pi,);
>> plot3(*sin(t),*cos(t),t,'b','linewidth',);
>> hold on;
>> quiver3(,,,,,,,'k','filled','linewidth',);
>> quiver3(,,,,,,,'k','filled','linewidth',);
>> quiver3(,,,,,,,'k','filled','linewidth',);
>> grid on;
>> xlabel('x');ylabel('y');zlabel('z');
>> axis([- - ]);
>> view(-,);

matlab绘图与可视化

>> [x,y]=meshgrid(: , :)

x =

y =

>> plot(x,y,'r',x',y','b',x,y,'k.','MarkerSize',);
>> axis([ ]);

matlab绘图与可视化

eg:绘制三维曲面  z=xe-(x2+y2)  的等高线图和梯度场

>> [x,y]=meshgrid(-:.:);
z=x.*exp(-x.^-y.^);
[dx,dy]=gradient(z,0.2,0.2);
contour(x,y,z);
hold on;
quiver(x,y,dx,dy);
h=get(gca,'children');

matlab绘图与可视化matlab绘图与可视化

>> ezsurf('u*sin(v)','u*cos(v)','4*v',[-*pi,*pi,-*pi,*pi]);

matlab绘图与可视化

>> subplot(,,);
>> [x,y]=meshgrid(:0.25:,-:.:);
>> z=sin(x).*cos(y);
>> [nx,ny,nz]=surfnorm(x,y,z);%计算法线方向
>> surf(x,y,z);
>> hold on;
>> quiver3(x,y,z,nx,ny,nz,0.5);
>> axis( - - );
>> axis([ - - ]); >> subplot(,,);
>> t=linspace(-,,);
>> [x,y,z]=meshgrid(t);
>> [x,y,z]=meshgrid(t,t,t);
>> v=x.*exp(-x.^-y.^-z.^);
>> xslice=;
>> yslice=;
>> xslice=[-1.2,.,];
>> zslice=[-,];
>> slice(x,y,z,v,xslice,yslice,zslice);

matlab绘图与可视化

6、三维图形的修饰

colormap:绘图色彩调整

shading:着色效果

alpha:透明度

light:光源

lighting:光照模式

material:对光反射效果

view:调整视点

>>  %立方体顶点坐标
>> vert=[ ; ; ; ; ;...]
; ; ];
>> fac=[ ; ; ; ; ; ];
>> view();
h=patch('faces',fac,'vertices',vert,'facecolor','g');
set(h,'facealpha',0.25);
hold on;
[x0,y0,z0]=sphere;
>> x=+*x0;y=+*y0;z=+*z0;
>> h1=surf(x,y,z,'linestyle','none','facecolor','b','edgecolor','none');
>> lightangle(,);%建立光源并设置光源视角
>> lighting phong;
>> axis equal;

matlab绘图与可视化

7、图形导出到文件

print

hgexport

saveas:saveas(h,'filename.ext')

    saveas(h,'filename','format')   ------------  format:扩展名(字符串)

8、动画制作

(1)彗星运行轨迹动画

  comet,  comet3

>> t=linspace(,*pi,);
>> x=t.*cos(t);
>> y=t.*sin(t);
>> comet(x,y)

(2)霓虹闪烁动画

  spinmap

>> sphere
>> axis equal
>> axis off
>> spinmap(,)

(3)电影动画

  getframe   movie

>> x=linspace(-,,);
>> [x,y,z]=meshgrid(x,x,x);
>> v=(x.^+/*y.^+z.^-).^-x.^.*z.^-/*y.^.*z.^;
>> p=patch(isosurface(x,y,z,v,));
>> set(p,'facecolor','red','edgecolor','none');
>> view()
>> axis equal;
>> axis off
>> light('posi',[ - ])
>> lighting phong
>> set(gca,'nextplot','replacechildren')
>> xx=get(p,'XData');
>> yy=get(p,'yData');
zz=get(p,'ZData');
for j=:
bibi=sin(pi*j/);
set(p,'XData',bibi*xx,'YData',bibi*yy,'ZData',bibi*zz)
f(j)=getframe;
end
>> movie(f,)
%是个心跳
上一篇:java读取txt文件内容


下一篇:读取txt内文件内容