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节 字符串操作 ...
随机推荐
- python 读取excel文件
方法一:利用pandas import pandas as pd inputfile_1 = "F:\\大论文实验\\福贡县数据\\贫困人口数据_2015.xlsx" data1 ...
- class类初始化之后调用赋值问题记录
class PWSTRDELL: def __init__(self, pw_str):#该方法在类实例化时会自动调用 self.pw = pw_str self.strength_level = 0 ...
- C#操作MySQL的类
C#操作MySQL的类 public class MySqlService { private static log4net.ILog logger = log4net.LogManager.GetL ...
- Pycharm 中You are using pip version 10.0.1, however version 18.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
今天运行程序的时候出现了: You are using pip version 10.0.1, however version 18.1 is available.You should conside ...
- JQuery的常用选择器 转
JQuery的常用选择器 刚开始学JQuery写的如有错误欢迎批评指正 JQuery拥有的选择器可以让我们更快更方便找到想要的元素,然后对相应的元素进行操作 简单介绍一下一些常用的选择器: 1.基本选 ...
- Jekyll博客添加Valine评论
Jekyll博客添加Valine评论 关于github搭建jekyl博客,在这里不做过多描述,详情参考: 百度搜索关键字:github搭建jekyll博客 官网:https://www.jekyll. ...
- python 几分钟前,几小时前,几天前转为时间戳
一开始我是这么做的 import time import datetime def conv_time(t): min = re.findall('\d+', t)[0] if u'分钟' in t: ...
- 基于Kubernetes构建企业容器云
前言 团队成员有DBA.运维.Python开发,由于需要跨部门向公司私有云团队申请虚拟机, 此时我在思考能否在现有已申请的虚拟机之上,再进行更加细粒度的资源隔离和划分,让本团队的成员使用, 也就是在私 ...
- swarm 使用整理
swarm 是 docker 公司弄的 docker 集群管理工具. 整理使用实践如下. 1. 准备 3 台实例机 ip 地址分别是 192.168.0.131 ~ 1332. 在三台 ...
- Java正则表达式实现港、澳、台身份证验证
最近由于业务的要求,需要进行港.澳.台人员身份证验证,现在直接上代码,经供参考学习,也为自己积累一些工具类: package com.qiu.validate; public class regexV ...