matlab绘图分为figure和axis,object三级。请参考文档的 Accessing Object Handles一节。
一个figure即为一个窗口,可以使用figure命令新建窗口。
一个figure中可以包含若干个axis,一般情况下只包含一个。而使用subplot时则包含多个axis。新建axis 可以使用命令axes。
一个axis在一个figure中的 位置是如何确定的呢?可以参考文档的 Automatic Axes Resize 一节(含图例)。
简言之,分为绘图区,由属性Position确定;绘图区外面有显示坐标轴和文字的区域,大小由TightInset确定;此外,还允许有一定的margin,最终axis所占的位置及大小,由属性OuterPosition确定。也就是说,设置的postion属性应该满足在OuterPosition内。这些位置属性的单位由Units属性确定。
当然,这些一般由matlab自动确定,但是,当我们需要设置显示为固定大小时(比如精确控制图片的放大倍率),就需要程序控制了(可以结合xlim、ylim等命令)。
figure和axes的属性可以通过 get和 set命令读取、设置。
- get(gcf)可以打印出当前窗口的所有属性;get(0)可以打印所有窗口的父类的属性。get(gca)可以打印出当前axes的所有属性
- fiugre的属性请在matlab中输入命令 doc('Figure Properties'),第一个链接就是众多属性了
- axes属性请参考 文档的 Axes Properties 页面
如下代码在一个figure中显示两个axes。
%参考自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))
1、绘图函数
- plot
- plot3 三维绘图
- loglog
- semilogx
- semilogy
- quiver 绘制矢量场(带箭头方向)
- fplot 绘制一个函数
- stem 离散
- bar 柱状图
- hist 直方图
- imshow 显示图片
- 设置图片显示的位置: imshow(im,'Xdata',[200, size(im,2)+200-1], 'Ydata',[100, size(im,1)+100-1]);
- imtool 简单的图片显示、编辑
- imagesc(x,y,C) 在x、y处显示图片,(也可设置图片大小,具体看文档)
2、绘图属性
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'}); %设置对应位置的标签
设置绘图属性
①、通过交互界面手动设置
②、通过代码设置
注:可以通过第一种方法手动调整后,再通过File->generate code生成代码
set(gca,'Color','b') %将背景设为蓝色,其他可用属性的查找方法见下图