Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像及一图多轴(一幅图绘制多。。。

更新时间:2023-07-20 18:43:39 阅读: 评论:0

Matlab绘图基础——利⽤axes(坐标系图形对象)绘制重叠图像及⼀图多轴(⼀幅图绘制多。。。
描述
axes在当前窗⼝中创建⼀个包含默认属性坐标系
axes('PropertyName',propertyvalue,...)创建坐标系时,同时指定它的⼀些属性,没有指定的使⽤DefaultAxes**,当然可以在以后使⽤t/get函数进⾏设置/读取,坐标
系axes所有属性参见附录
axes(h)将坐标系h置为当前坐标系,同时将figure中的CurrentAxes属性设置为h,并且将h排列到children属性中第⼀个axes位置。默认情况,所有图形函数都是在当前坐标系上绘图
h = axes(...)创建坐标系时返回它的句柄,⽅便以后操作
注意:创建时有三种⽅式直接指定属性,⽆先后顺序,不区分⼤⼩写,效果⼀致
(1)Name/Value配对形式
axes('Position',[0.2 0.2 0.6 0.6],'XGrid','on','XTickLabel',[])
当阳玉泉(2)结构体形式
pp.Position=[0.2 0.2 0.6 0.6];
pp.XGrid='on';
pp.XTickLabel=[];
兰淑仪axes(pp)
(3)细胞元组形式
Name={'Position','XGrid','XTickLabel'};
Value={[0.2 0.2 0.6 0.6],'on',[]};
axes(Name,Value)
应⽤实例1:绘制重叠图像
clear;clo;
香葱的功效与作用
%% 先画第⼀个⼤图像
t(groot,'defaultAxesColorOrder',[0 0 0;1 0 0],...
'defaultAxesLineStyleOrder','--|-|:|-.');
% groot refers to the graphics root object——help
% 这⾥的设置对象(groot)不能是h1或h2,否则不起作⽤
% 设置绘制点线的样式和他们的顺序,这⾥设置的顺序依次为:
% ⿊⾊虚线、红⾊虚线;⿊⾊实线、红⾊实线;⿊⾊点点、红⾊点点;⿊⾊点线、红⾊点线
h1=axes('position',[0.08 0.1 0.85 0.85]); % 创建⼀个坐标系
%让坐标轴的左下⾓与窗⼝左侧的距离时窗⼝宽度的8%,距离下侧10%
%整个坐标轴的宽占85%,⾼占85%。⼀个⼩框就出来了
axes(h1);    %将h1设置为当前坐标系,为绘图准备
白毛女观后感
Z = peaks; x = 1:length(Z);y = Z(3:10,:);
plot(x,y);  axis(h1,[0,49,-6,0.5]);  %坐标轴句柄h1不能少!
%画图    %x的坐标范围是0到2π,y的范围是-0.5到0.5
legend('⿊⾊虚线','红⾊虚线','⿊⾊实线','红⾊实线','⿊⾊点点','红⾊点点','⿊⾊点线','红⾊点线')
%% 在原图上插⼊⼀个新的⼩图像
t(groot,'defaultAxesLineStyleOrder','remove','defaultAxesColorOrder','remove');
%每次使⽤记得清除上次设置的参数,否则设置的参数会被保留下来
h2=axes('Position',[0.1 0.12 0.3 0.3]);
% 建⽴的坐标轴把原来的覆盖了是吧?这说明建⽴坐标轴是在绘图(点、线)之前
axes(h2);                  % 将h2设置为当前坐标系
plot(rand(10,3));
烟雨江南
t(h2,'xticklabel','','yticklabel','')  %设置x轴和y轴的标注不显⽰
axis tight; colorbar;                    %可以发现这⾥的axis和colorbar只对h2起作⽤
应⽤实例2:⼀幅图绘制多个坐标轴
% 数据准备
x1=0:0.01:10;y1=sin(x1);
六年级的画
x2=0:0.01:10;y2=cos(x2);
% 设置坐标系
ax1=gca;t(ax1,'XColor','r','YColor','r');
ax2=axes('Position',get(ax1,'Position'),...
'XAxisLocation','top','YAxisLocation','right',...
'Color','none','XColor','k','YColor','k');
% XAxisLocation和YAxisLocation属性指定在图形的哪⼀侧放置x轴和y轴
% Color属性将ax2设置为透明,若没有则ax1绘制的图像会被覆盖
% 展绘数据
h1=line(x1,y1,'Color','r','Parent',ax1);
h2=line(x2,y2,'Color','k','Parent',ax2);
应⽤实例3:结合axis,axes,colorbar等⼯具,制作⼀个数字图像灰度统计图注:axis设置坐标轴取值范围可以参考这⾥:
% 数据⽣成及展⽰(真实情况可以⽤数字图像代替)
t(groot,'defaultAxesLineStyleOrder','remove','defaultAxesColorOrder','remove');
%每次使⽤记得清除上次设置的参数,否则设置的参数会被保留下来
x=1:255;y=rand(1,255);y=y';%y是⾏向量还是列向量都⽆所谓
n=length(x);
stem(x,y, 'Marker', 'none');
title('未设置坐标轴的区间','fontsize',14);
% 坐标轴区间的⾃动设置(适⽤于直⽅图的显⽰)% Get x/y limits of axes using axis
hist_axes = gca;
limits = axis(hist_axes);
if n ~= 1 %当只有⼀个值时设置x坐标轴
limits(1) = min(x);周漫漫
el
limits(1) = 0;
end
limits(2) = max(x);
var = sqrt(y'*y/length(y));
limits(4) = 2*var; % 只改变了y轴显⽰的⾼度
axis(hist_axes,limits);
title('设置了的坐标轴区间','fontsize',14);
% 改变图像的位置,宽和⾼,隐藏X轴的标注
% In GUIDE, default axes units are characters. In order for axes repositiong
% to behave properly, units need to be normalized.
hist_axes_units_old = get(hist_axes,'units');
t(hist_axes,'Units','Normalized');
% 隐藏X轴的标注
法律承认% hist_axes.XAxis.Visible = 'off';
% 上⾯⼀句也可以隐藏Ticks,同时Box的上端也隐藏了,这就使得图像看上去不太好看
% 下⾯这⼀句可以只隐藏Ticks;
hist_axes.XTick= [];
% Get axis position and make room for others.
pos = get(hist_axes,'pos');
t(hist_axes,'pos',[pos(1) 0.15 pos(3) 0.75])
t(hist_axes,'Units',hist_axes_units_old); % 坐标向上移动了,相应也调整了整个图众向⽐例
title('移动了的坐标原点','fontsize',14);
% 设置ColorBar
c = colorbar('position',[pos(1) 0.1 pos(3) 0.05], 'location','southoutside');
c.Ticks= 0:0.125:1;
c.TickLabels = ceil((0:0.125:1)*255); % 使⽤floor函数,Ticks与真实值似乎有偏差c.Box = 'off'; % 取消显⽰ColorBar的框框,这样使ColorBar的上框线看起来不粗c.TickDirection = 'both';
colormap gray;
% colorbar最左下⾓点的横坐标、纵坐标、宽度、⾼度
title('⼀个灰度统计图的绘制就完成了','fontsize',14);

本文发布于:2023-07-20 18:43:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107396.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设置   坐标系   绘制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图