📄 s_cplot.m
字号:
if iscell(param.limits) param.limits=cat(2,param.limits{:});end ma=max(yi(~isnan(yi)));if isempty(ma) iname=inputname(1); if strcmpi(iname,'') iname='data set'; end alert([' All elements of ',iname,' are null values']); returnendmi=min(yi(~isnan(yi)));if ma*mi < 0 ma=(ma-mi)*0.5;% ma=max(ma,-mi); mi=-ma;elseif ma == mi ma=ma+10000*max(ma*eps,eps); mi=mi-10000*max(mi*eps,eps);enddmami=ma-mi;if isempty(param.limits) if iscell(param.clim) param.clim=cat(2,param.clim{:}); end param.limits(2)=ma-dmami*param.clim(2); param.limits(1)=mi+dmami*param.clim(1); if param.limits(1) >= param.limits(2) alert(' clim(1) + clim(2) must be less than 1; present values ignored') param.limits(1)=mi; param.limits(2)=ma; endelse if param.limits(1) >= param.limits(2) alert(' limits(1) must be less than limits(2); present values ignored') param.limits(1)=mi; param.limits(2)=ma; endend% Define colormap to usetry cm=mycolormap(param.colormap);catch %#ok disp(' Reqested colormap not found; seismic colormap used instead.') cm=mycolormap('seismic');end% Flip color matrix if requestedif isyes(param.flip_colormap) cm=flipud(cm);end % Plot dataif isempty(param.shading) cplot_no1(yi,seismic.first,dti,xi,param.direction,cm, ... param.limits,ha)else cplot_no2(yi,seismic.first,dti,xi,param.direction,cm, ... param.limits,ha,param.shading)end% Titleif ~isempty(param.title) if iscell(param.title) % Handle multi-line titles mytitle(param.title{1}) else mytitle(param.title) endend% Add annotation of horizontal axisxtext=s_gd(seismic,param.annotation);hunits=s_gu(seismic,param.annotation);if ~isempty(xtext) && ~strcmpi(xtext,'not available') if ~isempty(hunits) && ~strcmpi(hunits,'n/a') xtext=[xtext,' (',hunits,')']; end xlabel([xtext,text2append])endif ~isempty(param.time_lines) if ~iscell(param.time_lines) param.time_lines={param.time_lines}; end v=axis; width=1; for ii=1:length(param.time_lines) t1=ceil(v(3)/param.time_lines{ii})*param.time_lines{ii}; temp=t1:param.time_lines{ii}:v(4); mygrid(temp,'h','k',width); width=width*1.5; endendbox ongrid on zoom onset(ha,'gridlinestyle','-','xgrid','off','Layer','top')% Button for figure-export menu% figure_export_menu(figure_handle);% Button for scroll barscseismic_scrollbar_menu(figure_handle,seismic,param.direction)% Button for cursor trackingif (isempty(param.tracking) && strcmpi(param.figure,'new')) || ... strcmpi(param.tracking,'yes') % Add cursor tracking [dummy,xinfo]=s_gh(seismic,param.annotation); %#ok First output argument is not required y=linspace(seismic.first,seismic.last,nsamp); yinfo=info4time(seismic); initiate_3d_tracking(seismic.traces,xi,y,xinfo,yinfo,{'amplitude','','Amplitude'})else yinfo=info4time(seismic); ylabel([yinfo{3},' (',yinfo{2},')'])end% Button for menu to change image (color, etc. ...)if strcmpi(param.imagemenu,'yes') myimagemenu % Create menu button to interactively change colors, etc.end% Update colorbarif isyes(param.colorbar) colorbarend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function cplot_no1(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha)% Function plot seismic data as image plot%% cplot(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,colbar)% INPUT% seis seismic traces% stm start time% prm sample interval% xannot x-axis annotation% plot_dir plot direction ('l2r' or 'r2l'); default: 'l2r'% cm color matrix% param_scale a 2-element vector containing clow and chigh (see imagesc and colormap).%% or by global variable param.clim which computes % ma=max(seis(:)); % if ma > 0% param_scale(2)=ma*param.clim(2);% else% param_scale(2)=ma/param.clim(2);% end% mi=min(seis(:)); % if mi > 0% param_scale(1)=mi/param.clim(1);% else% param_scale(1)=mi*param.clim(1);% end% if param_scale(1) >= param_scale(2)% cc=mean(param_scale);% param_scale(1)=cc*(1-eps);% param_scale(2)=cc*(1+eps);% end% ha handle of axis[nbin,ntr]=size(seis);% Handle plot and CDP directionif strcmp(plot_dir,'r2l') == 1 && xannot(1) < xannot(ntr), flip_axis=1;elseif strcmp(plot_dir,'r2l') ~= 1 && xannot(1) > xannot(ntr), xannot=flipud(xannot(:)); seis=fliplr(seis); flip_axis=1;elseif strcmp(plot_dir,'r2l') == 1 && xannot(1) > xannot(ntr), xannot=flipud(xannot(:)); flip_axis=0; seis=fliplr(seis);else flip_axis=0;end%axis([xannot(1)-0.5,xannot(ntr)+0.5,stm,stm+(nbin-1)*prm])if ~isempty(param_scale) && ~all(isconstant(seis)) handle=imagesc(xannot,stm:prm:(nbin-1)*prm+stm,seis,param_scale);else handle=imagesc(xannot,stm:prm:(nbin-1)*prm+stm,seis);end set(handle,'Tag','image_displayed') % Create tag for image object which is % used in "myimagemenu"try colormap(cm),catch %#ok % Do nothingendset(ha,'XAxisLocation','top','YDir','Reverse');if flip_axis == 1, set(ha,'XDir','Reverse');enddrawnow%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function cplot_no2(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,param_shading)% Function plot seismic data using "pcolor"%% cplot(seis,stm,prm,xannot,plot_dir,cm,param_scale,ha,colbar)% INPUT% seis seismic traces% stm start time% prm sample interval% xannot x-axis annotation% plot_dir plot direction ('l2r' or 'r2l'); default: 'l2r'% cm color matrix% param_scale a 2-element vector containing clow and chigh (see imagesc and colormap).%% or by global variable param.clim which computes % ma=max(seis(:)); % if ma > 0% param_scale(2)=ma*param.clim(2);% else% param_scale(2)=ma/param.clim(2);% end% mi=min(seis(:)); % if mi > 0% param_scale(1)=mi/param.clim(1);% else% param_scale(1)=mi*param.clim(1);% end% if param_scale(1) >= param_scale(2)% cc=mean(param_scale);% param_scale(1)=cc*(1-eps);% param_scale(2)=cc*(1+eps);% end% ha handle of axis[nbin,ntr]=size(seis);% Handle plot and CDP directionif strcmp(plot_dir,'r2l') == 1 && xannot(1) < xannot(ntr), flip_axis=1; xannot=xannot(:);elseif strcmp(plot_dir,'r2l') ~= 1 && xannot(1) > xannot(ntr), xannot=flipud(xannot(:)); seis=fliplr(seis); flip_axis=1;elseif strcmp(plot_dir,'r2l') == 1 && xannot(1) > xannot(ntr), xannot=flipud(xannot(:)); flip_axis=0; seis=fliplr(seis);else flip_axis=0; xannot=xannot(:);endtry colormap(cm),catch %#ok % Do nothingend%axis([xannot(1)-0.5,xannot(ntr)+0.5,stm,stm+(nbin-1)*prm])seis=double(seis);seis(end+1,end+1)=0;seis(:,end)=seis(:,end-1);% shading flathandle=pcolor([0;xannot]+0.5,stm-prm/2:prm:(nbin-1)*prm+stm+prm/2,seis);if ~isempty(param_scale) set(gca, 'CLim', param_scale);end set(handle,'Tag','image_displayed') % Create tag for pplot object which is % used in "myimagemenu"try shading(param_shading)catch %#ok disp([' Unknown parameter for keyword "shading": ',param_shading])endset(ha,'XAxisLocation','top','YDir','Reverse');if flip_axis == 1, set(ha,'XDir','Reverse');enddrawnow
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -