zoom 指令可以将图形放大或缩小,若要将图形放大时用 zoom on,zoom out,当不再须要放大或缩小图形时用 zoom off。
>> M=peaks(25); % peaks 是MATLAB内建的一个像山峰的特别函数,25是这个
>> plot(M) % 函数矩阵的大小,如果数值愈大则画出的山峰图愈平滑
>> zoom on % 开始放大图形,每按一次Enter键图形就放大一次
>> zoom out % 开始缩小图形,每按一次Enter键图形就缩小一次
>> zoom off % 停止图形放大或缩小功能
可以使用函数来实现此功能
图形移动,放大缩小等功能的函数 :
function axdrag(action)
%AXDRAG Pan and zoom with simple keystrokes
% Use this tool to move quickly around the data displayed in a 2-D plot
% Make sure the figure has focus, and then press any of the following
% keys to zoom in or out Clicking and dragging will pan the data
%
% Keys you can use are:
% z, Z: zoom in, zoom out, in both dimensions
% x, X: zoom in, zoom out, x dimension only
% y, Y: zoom in, zoom out, y dimension only
% arrow keys: pan the data
% a: axis auto
% n: axis normal
% e: axis equal
% g: toggle grid state
% spacebar: toggle axis tick display state
% h: help
%
% Example
% c = pi(1+sqrt(5))/2;
% x = 0:1000;
% r = 272378;
% z = cumsum(exp(i(cxx + r)));
% plot(real(z),imag(z));
% axdrag
% % Now click, drag, and use special keys
% Ned Gulley, March 2003
persistent x0 dx
if nargin < 1,
action = 'initialize';
end
% Use these variables to change the zoom and pan amounts
zoomFactor = 09;
panFactor = 002;
% Get rid of the help window if it's being displayed
helpTextAxis = findobj(gcbf,'Type','axes','Tag','axdraghelpaxis');
if isempty(helpTextAxis)
helpWasOff = 1;
else
helpWasOff = 0;
delete(helpTextAxis);
end
switch action
case 'initialize'
set(gca,'ButtonDownFcn','axdrag start')
set(gcf,'KeyPressFcn','axdrag keypress')
set(gcf,'DoubleBuffer','on')
case 'start'
set(gcbf,'Units','pixel');
set(gca,'Units','pixel');
set(gcbf,'WindowButtonMotionFcn','axdrag move')
set(gcbf,'WindowButtonUpFcn','axdrag stop')
currentPoint = get(gcbf,'CurrentPoint');
x0 = currentPoint;
axdrag move
case 'move'
currentPoint = get(gcbf,'CurrentPoint');
dx = currentPoint - x0;
x0 = currentPoint;
ap = get(gca,'Position');
xLim = get(gca,'XLim');
yLim = get(gca,'YLim');
set(gca,'XLim',xLim-(diff(xLim)dx(1)/ap(3)),
'YLim',yLim-(diff(yLim)dx(2)/ap(4)));
case 'stop'
set(gcbf,'WindowButtonMotionFcn','')
set(gcbf,'WindowButtonUpFcn','')
set(gcbf,'Units','normalized');
set(gca,'Units','normalized');
case 'keypress'
currChar = get(gcbf,'CurrentCharacter');
if isempty(currChar)
return
end
if currChar=='a',
axis auto
elseif currChar=='e',
axis equal
elseif currChar=='n',
axis normal
elseif currChar=='g',
grid
elseif currChar==28,
xLim=get(gca,'XLim');
xLimNew = xLim + panFactordiff(xLim);
set(gca,'XLim',xLimNew)
elseif currChar==29,
xLim=get(gca,'XLim');
xLimNew = xLim - panFactordiff(xLim);
set(gca,'XLim',xLimNew)
elseif currChar==30,
yLim=get(gca,'YLim');
yLimNew = yLim - panFactordiff(yLim);
set(gca,'YLim',yLimNew)
elseif currChar==31,
yLim=get(gca,'YLim');
yLimNew = yLim + panFactordiff(yLim);
set(gca,'YLim',yLimNew)
elseif abs(currChar)==32,
if isempty(get(gca,'XTick')),
set(gca,'XTickMode','auto','YTickMode','auto')
else
set(gca,'XTick',[],'YTick',[],'Box','on')
end
elseif (currChar=='x') | (currChar=='X'),
if currChar == 'X',
zoomFactor=1/zoomFactor;
end
xLim=get(gca,'XLim');
xLimNew = [0 zoomFactordiff(xLim)] + xLim(1) + (1-zoomFactor)diff(xLim)/2;
set(gca,'XLim',xLimNew)
elseif (currChar=='y') | (currChar=='Y'),
if currChar == 'Y',
zoomFactor=1/zoomFactor;
end
yLim=get(gca,'YLim');
yLimNew = [0 zoomFactordiff(yLim)] + yLim(1) + (1-zoomFactor)diff(yLim)/2;
set(gca,'YLim',yLimNew)
elseif (currChar=='z') | (currChar=='Z'),
if currChar == 'Z',
zoomFactor=1/zoomFactor;
end
xLim=get(gca,'XLim');
yLim=get(gca,'YLim');
xLimNew = [0 zoomFactordiff(xLim)] + xLim(1) + (1-zoomFactor)diff(xLim)/2;
yLimNew = [0 zoomFactordiff(yLim)] + yLim(1) + (1-zoomFactor)diff(yLim)/2;
set(gca,'XLim',xLimNew,'YLim',yLimNew)
elseif currChar=='h',
if helpWasOff
str = {
' '
' AXDRAG Keys you can use are:'
' '
' z, Z: zoom in, zoom out, both dimensions '
' x, X: zoom in, zoom out, x dimension only '
' y, Y: zoom in, zoom out, y dimension only '
' arrow keys: pan the data'
' a: axis auto'
' n: axis normal'
' e: axis equal'
' g: toggle grid state'
' spacebar: toggle axis tick display state'
' h: help'
' '
' Press ''h'' again to dismiss this message'
' '
};
helpTextAxis = axes(
'Tag','axdraghelpaxis',
'Units','characters',
'Position',[2 1 76 16],
'Visible','off');
text(0,1,str,
'Parent',helpTextAxis,
'VerticalAlignment','top',
'BackgroundColor',[1 1 08],
'FontName','courier',
'FontSize',6);
innodb_data_home_dir = /longxibendi/mysql/mysql/var/
#innodb_data_file_path = ibdata1:1G:autoextend
innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend #表空间
innodb_file_io_threads = 4 #io线程数
如下修改就好了
[FileName2,PathName2] = uigetfile('bmp','jpg','Select BMP file');
path=fullfile(FileName2,FileName2)
img=imread(path);
axes(handlesaxes1);
imshow(img);
原因可能是你的GUI中有其他figure出现时,在那个figure中可能没有tag没有axes1的控件
还有你的路基那样那个组合有可能出错 做好使用fullfile函数
1、楼上所说Layer属性不靠谱,该属性只决定axes的坐标轴、Tick等要素是否被坐标系里面的对象如patch、surface、image等所遮盖,与其它无关。
2、楼主的要求做不到。对于同一类型的图形对象,可以通过设置Children的顺序来调整其显示顺序,但是,GUIDE里面的text属于uicontrol控件,而控件总是显示在axes的前面,这一点据我所知无法改变。
3、一般来说,text应该和axes放在不同的位置,便发生重叠。如果确实有需要把text放在axes的后面显示,可以考虑单独为text创建一个axes,并将axes属性设为不可见,然后在该axes上面使用text函数创建文字对象(注意,不是uicontrol),应该可以达到这个目的。但是:(1)这个似乎只能通过编程实现,无法用GUIDE来做;(2)我仍然不认为有需要用axes遮盖text的这种应用场景。
MATLAB中的绘图函数有下列基本颜色:
红色——"red"
绿色——"green"
蓝色——"blue"
青色——"cyan"
洋红色——"magenta"
**——"yellow"
黑色——"black"
白色——"white"
如需要其他颜色,可以用调色板进行调整 RGB 三元组。如RGB 三元组 [08500 03250 00980]
fig,ax=pltsubplots的意思是将pltsubplots()函数的返回值赋值给fig和ax两个变量。
pltsubplots()是一个函数,返回一个包含figure和axes对象的元组,因此,使用fig,ax=pltsubplots()将元组分解为fig和ax两个变量。
通常,我们只用到ax:
fig,ax = pltsubplots(nrows=2, ncols=2)
axes = axflatten()
把父图分成22个子图,axflatten()把子图展开赋值给axes,axes[0]便是第一个子图,axes[1]是第二个。
扩展资料
在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:
def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
subplot_kw=None, gridspec_kw=None, fig_kw):
参数:
nrows,ncols:子图的行列数。
sharex, sharey:
设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。
返回值
fig: matplotlibfigureFigure 对象
ax:子图对象( matplotlibaxesAxes)或者是他的数组
怎么给类 matlabgraphicsaxisaxes'的值定义函数 subsindex'
显示的错误意思是:下标标示使用错误,下标标示函数“subsindex”不能定义成符号变量sym类型。
这里你对于函数的定义出现了错误,应该这样写:
>> syms x
>> f=1/x
f =
1/x
>>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)