1、设置图形对象属性值

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

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

2、基本二维绘图函数

  1. plot

  

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')

  

  2.  loglog:双对数坐标绘图

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

  

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

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

  

  4.  polar:极坐标绘图

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

  

  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');

  

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');

  

>> 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');

  

>> 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',);

  

  • \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 - ]);

  

5、常用统计绘图函数

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

>> 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;

5、三维图形绘制

利用 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(-,);

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

x =

y =

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

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');

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

>> 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);

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;

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,)
%是个心跳

matlab绘图与可视化的更多相关文章

  1. python金融与量化分析------Matplotlib(绘图和可视化)

    -----------------------------------------------------------Matplotlib:绘图和可视化------------------------ ...

  2. Matlab绘图详解

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  3. 使用axes函数在matlab绘图中实现图中图的绘制

    使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1 ...

  4. matlab绘图--线性规划图解法示意

    matlab绘图--线性规划图解法示意 图解法 matlab绘图 区域填充 线性规划问题: matlab绘图 L1=[4,0;4,4];  plot(L1(:,1),L1(:,2));hold on  ...

  5. Matlab绘图(一二三维)

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  6. Matlab绘图高级部分

    图形是呈现数据的一种直观方式,在用Matlab进行数据处理和计算后,我们一般都会以图形的形式将结果呈现出来.尤其在论文的撰写中,优雅的图形无疑会为文章加分.本篇文章非完全原创,我的工作就是把见到的Ma ...

  7. (转载)MatLab绘图

    转载自:http://www.cnblogs.com/hxsyl/archive/2012/10/10/2718380.html 转载自:http://www.cnblogs.com/jeromebl ...

  8. Matlab绘图系列之高级绘图

    Matlab绘图系列之高级绘图 原帖地址: http://blog.163.com/enjoy_world/blog/static/115033832007865616218/ Matlab绘图 20 ...

  9. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

随机推荐

  1. linux与windows实现文件交互

    Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文 ...

  2. 华为交换机VRP系统命令试图

  3. CentOS7部署Flask+Gunicorn+Nginx+Supervisor

    1. Git客户端 Win10安装git for windows 1.1 设置Git全局参数 打开Git Bash $ git config --global user.name "Alic ...

  4. 思科模拟器PacketTracer7--利用一台交换机将两台pc划分到不同vlan下

    实验2—3 实验内容:将同一交换机下的两台pc划分到不同vlan中 实验工具:思科模拟器PacketTracer7 使用设备:一台交换机,两台PC 实验步骤: 一.配置网络拓扑图 注:1.连线可选择闪 ...

  5. Nmap UDP扫描缓慢问题探究(无结果)

    一.说明 在网络原理中我们经常说TCP是面向连接的要进行三次握手和四次挥手所以速度比较慢,UDP是无连接的直接发送和接收所以速度快(说到这个快慢我总想起多年前有篇分析MSN为什么被QQ淘汰的一篇文章其 ...

  6. STL 小白学习(9) 对组

    void test01() { //构造方法 pair<, ); cout << p1.first << p1.second << endl; pair< ...

  7. Webpack学习-Plugin

    原文地址:http://wushaobin.top/2019/03/15/webpackPlugin/ 什么是Plugin? 在Webpack学习-工作原理(上)一文中我们就已经介绍了Plugin的基 ...

  8. oracle分析性能问题实例

    摘录于SAP有关分析ORACLE数据性能事件的文档. 1.A check for the distribution of relevant Oracle server time revealed: 有 ...

  9. hdu1256

    画横线总是一个字符粗,竖线随着总高度每增长6而增加1个字符宽.当总高度从5增加到6时,其竖线宽度从1增长到2.下圈高度不小于上圈高度,但应尽量接近上圈高度,且下圈的内径呈正方形.每画一个"8 ...

  10. INSERT INTO SELECT

    今天遇到一个问题在写把查询的数据添加到一个表里时出现问题 sql  INSERT INTO db1_name(field1,field2) VALUES SELECT field1,field2 FR ...