[size=x-large][color=blue]0、原理(不深究,可跳过)[/color][/size]
matlab绘图分为figure和axis,object三级。请参考文档的[color=red]Accessing Object Handles[/color]一节。
一个figure即为一个窗口,可以使用figure命令新建窗口。
一个figure中可以包含若干个axis,一般情况下只包含一个。而使用subplot时则包含多个axis。新建axis 可以使用命令axes。
一个axis在一个figure中的[color=blue]位置[/color]是如何确定的呢?可以参考文档的 [color=red]Automatic Axes Resize[/color] 一节(含图例)。
简言之,分为绘图区,由属性Position确定;绘图区外面有显示坐标轴和文字的区域,大小由TightInset确定;此外,还允许有一定的margin,最终axis所占的位置及大小,由属性OuterPosition确定。也就是说,设置的postion属性应该满足在OuterPosition内。这些位置属性的单位由Units属性确定。
当然,这些一般由matlab自动确定,但是,当我们需要设置显示为固定大小时(比如精确控制图片的放大倍率),就需要程序控制了(可以结合xlim、ylim等命令)。
figure和axes的属性可以通过[color=red]get[/color]和[color=red]set[/color]命令读取、设置。
[list]
[*]get(gcf)可以打印出当前窗口的所有属性;get(0)可以打印所有窗口的父类的属性。get(gca)可以打印出当前axes的所有属性
[*]fiugre的属性请在matlab中输入命令 [color=red]doc('Figure Properties')[/color],第一个链接就是众多属性了
[*]axes属性请参考 文档的 Axes Properties 页面
[/list]
如下代码在一个figure中显示两个axes。
[img]http://dl2.iteye.com/upload/attachment/0109/4994/ef1eb20e-6b3b-3cd5-80be-4db819e0b888.png[/img]
[size=x-large][color=blue]1、绘图函数[/color][/size]
[list]
[*]plot
[*]plot3 三维绘图
[*]loglog
[*]semilogx
[*]semilogy
[*]quiver 绘制矢量场(带箭头方向)
[/list]
[list]
[*]fplot 绘制一个函数
[/list]
[list]
[*]stem 离散
[*]bar 柱状图
[*]hist 直方图
[/list]
[list]
[*]imshow 显示图片
[*] 设置图片显示的位置: imshow(im,'Xdata',[200, size(im,2)+200-1], 'Ydata',[100, size(im,1)+100-1]);
[*]imtool 简单的图片显示、编辑
[*]imagesc(x,y,C) 在x、y处显示图片,(也可设置图片大小,具体看文档)
[/list]
[size=x-large][color=blue]2、绘图属性[/color][/size]
legend 显示图例的说明
xlim 坐标轴显示范围
ylim
axis xy %设置坐标轴y方向从下到上!!使用imshow后默认是axis ij的,可以使用axis xy 调整回来!
也可以使用set(gca,'YDir','normal')
set(gca,'YDir','reverse')
axis tight 将显示范围设置为刚好可以显示所画的数据
axis equal x、y轴的aspect ratio设为1。
view 视点
设置x轴显示的标签
set(gca,'XTickLabel',{'08-7-10 ';'08-7-30 ';'08-8-19 ';'08-9-8 ';'08-9-28 ';'08-10-18';'08-11-7 ';'08-11-27 '})
[size=x-large][color=blue]设置绘图属性[/color][/size]
[size=large]①、通过交互界面手动设置[/size]
[img]http://dl.iteye.com/upload/attachment/615129/431fe57d-c1c4-3a60-a308-1d053ffc6bfa.png[/img]
[img]http://dl.iteye.com/upload/attachment/615131/27203839-dc3c-3e12-a62a-78f4ca4a6683.png[/img]
[size=large]②、通过代码设置[/size]
[size=large][color=red]注:[/color]可以通过第一种方法手动调整后,再通过File->generate code生成代码[/size]
[img]http://dl.iteye.com/upload/attachment/615126/775510f2-31df-3ff4-a509-120f7648f9da.png[/img]
matlab绘图分为figure和axis,object三级。请参考文档的[color=red]Accessing Object Handles[/color]一节。
一个figure即为一个窗口,可以使用figure命令新建窗口。
一个figure中可以包含若干个axis,一般情况下只包含一个。而使用subplot时则包含多个axis。新建axis 可以使用命令axes。
一个axis在一个figure中的[color=blue]位置[/color]是如何确定的呢?可以参考文档的 [color=red]Automatic Axes Resize[/color] 一节(含图例)。
简言之,分为绘图区,由属性Position确定;绘图区外面有显示坐标轴和文字的区域,大小由TightInset确定;此外,还允许有一定的margin,最终axis所占的位置及大小,由属性OuterPosition确定。也就是说,设置的postion属性应该满足在OuterPosition内。这些位置属性的单位由Units属性确定。
当然,这些一般由matlab自动确定,但是,当我们需要设置显示为固定大小时(比如精确控制图片的放大倍率),就需要程序控制了(可以结合xlim、ylim等命令)。
figure和axes的属性可以通过[color=red]get[/color]和[color=red]set[/color]命令读取、设置。
[list]
[*]get(gcf)可以打印出当前窗口的所有属性;get(0)可以打印所有窗口的父类的属性。get(gca)可以打印出当前axes的所有属性
[*]fiugre的属性请在matlab中输入命令 [color=red]doc('Figure Properties')[/color],第一个链接就是众多属性了
[*]axes属性请参考 文档的 Axes Properties 页面
[/list]
如下代码在一个figure中显示两个axes。
[img]http://dl2.iteye.com/upload/attachment/0109/4994/ef1eb20e-6b3b-3cd5-80be-4db819e0b888.png[/img]
%参考自matlab的doc axes
hFig=figure;
hAxes1=axes('Parent',hFig);
hAxes2=axes('Parent',hFig);
set(hAxes1,'Position',[0 0 0.5 0.5])
set(hAxes2,'Position',[0.5 0.5 0.5 0.5])
axes(hAxes1);%将hAxes1设为当前axis,即gca
contour(peaks(20))
axes(hAxes2)
surf(peaks(20))
[size=x-large][color=blue]1、绘图函数[/color][/size]
[list]
[*]plot
[*]plot3 三维绘图
[*]loglog
[*]semilogx
[*]semilogy
[*]quiver 绘制矢量场(带箭头方向)
[/list]
[list]
[*]fplot 绘制一个函数
[/list]
[list]
[*]stem 离散
[*]bar 柱状图
[*]hist 直方图
[/list]
[list]
[*]imshow 显示图片
[*] 设置图片显示的位置: imshow(im,'Xdata',[200, size(im,2)+200-1], 'Ydata',[100, size(im,1)+100-1]);
[*]imtool 简单的图片显示、编辑
[*]imagesc(x,y,C) 在x、y处显示图片,(也可设置图片大小,具体看文档)
[/list]
[size=x-large][color=blue]2、绘图属性[/color][/size]
legend 显示图例的说明
xlim 坐标轴显示范围
ylim
axis xy %设置坐标轴y方向从下到上!!使用imshow后默认是axis ij的,可以使用axis xy 调整回来!
也可以使用set(gca,'YDir','normal')
set(gca,'YDir','reverse')
axis tight 将显示范围设置为刚好可以显示所画的数据
axis equal x、y轴的aspect ratio设为1。
view 视点
设置x轴显示的标签
set(gca,'XTickLabel',{'08-7-10 ';'08-7-30 ';'08-8-19 ';'08-9-8 ';'08-9-28 ';'08-10-18';'08-11-7 ';'08-11-27 '})
%自定义x轴显示间隔及标签
N=6;
XTick=[]; %标签显示的位置
XTickLabel={};%标签显示的字符串
for i=0:2:N
XTick=[XTick i];
label=['L' num2str(i)];%新建一个标签,string类型的
XTickLabel=[XTickLabel label];
end
close all
figure1 = figure;
axes1 = axes('Parent',figure1,'XTickLabel',XTickLabel, 'XTick',XTick,'FontSize',16);
xlim([-N N])
%% 设置colorbar的标签,演示get、 set的用法
c=colorbar; %获取当前的colormap
get(c,'ylim') % 当前colorbar的范围
set(c,'YTick',[0 128 255]); %设置colorbar的标签位置
set(c,'YTickLabel',{'a', 'b', 'c'}); %设置对应位置的标签
[size=x-large][color=blue]设置绘图属性[/color][/size]
[size=large]①、通过交互界面手动设置[/size]
[img]http://dl.iteye.com/upload/attachment/615129/431fe57d-c1c4-3a60-a308-1d053ffc6bfa.png[/img]
[img]http://dl.iteye.com/upload/attachment/615131/27203839-dc3c-3e12-a62a-78f4ca4a6683.png[/img]
[size=large]②、通过代码设置[/size]
[size=large][color=red]注:[/color]可以通过第一种方法手动调整后,再通过File->generate code生成代码[/size]
set(gca,'Color','b') %将背景设为蓝色,其他可用属性的查找方法见下图
[img]http://dl.iteye.com/upload/attachment/615126/775510f2-31df-3ff4-a509-120f7648f9da.png[/img]