matlab绘图与可视化
1、设置图形对象属性值
set(h,'属性名称','属性值')
>> subplot(,,);
h1=line([ ],[ ]);
text(,0.5,'unchange');
subplot(,,);
h2=line([ ],[ ]);
set(h2,'linewidth',);
text(,0.5,'change');
2、基本二维绘图函数
- 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+...)
- hold:图形保持
- axis:设置坐标系的刻度及显示方式
- box:显示或隐藏坐标框
- grid:为当前坐标系添加或消除网格
- title:添加标题
- xlabel、ylabel:为当前坐标轴添加标签
- text:在当前坐标系中添加文本对象
- gtext:在当前坐标系中交互式添加文本对象
- legend:在当前坐标系中添加 line 对象和 patch 对象的图形标注框
- annotation:在当前图形窗口建立注释对象(annotation对象)
- 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、图形导出到文件
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绘图与可视化的更多相关文章
- python金融与量化分析------Matplotlib(绘图和可视化)
-----------------------------------------------------------Matplotlib:绘图和可视化------------------------ ...
- Matlab绘图详解
Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...
- 使用axes函数在matlab绘图中实现图中图的绘制
使用axes函数在matlab绘图中实现图中图的绘制 有时为了对细节进行详细说明,需要在一个较大坐标轴上绘制一个小图来对局部进行放大以阐述结果. 这可以通过调用axes函数实现. 下面通过绘制 y=1 ...
- matlab绘图--线性规划图解法示意
matlab绘图--线性规划图解法示意 图解法 matlab绘图 区域填充 线性规划问题: matlab绘图 L1=[4,0;4,4]; plot(L1(:,1),L1(:,2));hold on ...
- Matlab绘图(一二三维)
Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...
- Matlab绘图高级部分
图形是呈现数据的一种直观方式,在用Matlab进行数据处理和计算后,我们一般都会以图形的形式将结果呈现出来.尤其在论文的撰写中,优雅的图形无疑会为文章加分.本篇文章非完全原创,我的工作就是把见到的Ma ...
- (转载)MatLab绘图
转载自:http://www.cnblogs.com/hxsyl/archive/2012/10/10/2718380.html 转载自:http://www.cnblogs.com/jeromebl ...
- Matlab绘图系列之高级绘图
Matlab绘图系列之高级绘图 原帖地址: http://blog.163.com/enjoy_world/blog/static/115033832007865616218/ Matlab绘图 20 ...
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...
随机推荐
- regression | p-value | Simple (bivariate) linear model | 线性回归 | 多重检验 | FDR | BH | R代码
P122, 这是IQR method课的第一次作业,需要统计检验,x和y是否显著的有线性关系. Assignment 1 1) Find a small bivariate dataset (pref ...
- 【调试】Idea如何远程debug之tomcat war包启动
一.修改tomcat配置并启动 1.修改tomcat bin目录下的startup.sh配置,定位startup.sh最后一行,使用jpda start启动 即将exec "$PRGDIR ...
- Activity的介绍
Activity类是Android应用程序的重要组成部分,activity的启动和组合方式是平台应用程序模型的基本组成部分.Android系统通过调用与其生命周期的特定阶段相对应的特定回调方法来启动A ...
- scikit_learn lasso详解
Lasso 回归 l1 正则化 The Lasso 是估计稀疏系数的线性模型. 它在一些情况下是有用的,因为它倾向于使用具有较少参数值的情况,有效地减少给定解决方案所依赖变量的数量. 因此,Lasso ...
- C++之标准库map
目录 1.成员函数 2.元素访问 3.迭代器Iterators(C++ 11) 4.容量Capacity 5.修改函数(C++ 11和C++ 17) 6.查找表Lookup 7.观察Observers ...
- Vue2全家桶之二:vue-router(路由)详细教程,看这个就够了
作者:东西里本文转载于:https://www.jianshu.com/p/514c7588e877来源:简书 转载仅供自己日后看方便. 由于Vue在开发时对路由支持的不足,于是官方补充了vue- ...
- 20175212课下作业 MyCP
20175212课下作业 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2 ...
- postman-SSL证书问题-支持HTTPS请求
使用Google接口调试插件postman请求https协议的接口,postman提示: 为此,需要解决这个问题,提示信息已经给出了解决方案!Using self-signed SSL certifi ...
- 为虚机Linux系统设置静态IP,ping通外网并解决相关问题
在虚机中安装完Linux系统后,虚机是ping不通外网的,而默认的动态IP会为之后的Hadoop应用造成不少麻烦,为了减少这些不必要的麻烦,我们把系统的IP设置为静态. 步骤: 修改系统配置文件 命令 ...
- week6
面向对象编程 class类(新式类:class xx(obj):,经典类 class xx:) 构造函数 __init__(self,ret1,ret2...) 在实例化时做一些类的初始化工作 析构函 ...