⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l_crossplot.m

📁 实现地震勘探中
💻 M
字号:
function aux=l_crossplot(wlog,mnem1,mnem2,varargin)% Function makes crossplot of curve with mnemonic "mnem1" (x-axis) vs curve with% mnemonic "mnem2" (y-axis)%% Written by: E. R.: March 19, 2001.% Last updated: May 14, 2008: add optional restriction on number of points %                             plotted; additional output field%%         aux=l_crossplot(wlog,mnem1,mnem2,varargin)% INPUT% wlog    log structure% mnem1   mnemonic of curve with values plotted along the x-axis% mnem2   mnemonic of curve whose values are plotted along the y-axis% varargin one or more cell arrays; the first element of each cell array is a keyword string,%         the following arguments contains a parameter(s). Accepted keywords are         %         'color'   Color of symbols. %                   Default: {'color','r'}%         'depths'  first and last depth to use%                   Default: {'depths',wlog.first,wlog.last}%         'figure'  Possible values are 'new' (create new figure) and 'old' %                   (plot onto existing figure)%                   Default: {'figure','new'}%         'rows'    used to select specific rows in the matrix of curve values %                   on the basis of a logical conditions (see "l_select")%                   Example: {'rows','Vclay < 0.25'} selects all rows of the %                      matrix of curve values for which the clay volume is less%                      than 25 %%                   Default: {'rows',''}   all rows%         'linewith'  Line width for plotting.%                   Default: {'linewidth',1.5}%         'linestyle'  Style of line to use; type "help plot" to see options%                   Default: {'linestyle','none'}  i.e. no connecting lines between markers%         'marker', Marker to plot; type "help plot" to see options %                   Default: {'marker','*'}%         'markersize'  Size of Marker. %                   Default: {'markersize',5}%         'nsamp'   Maximum number of samples to plot; if more than one dataset%                   is crossploted on the same figure it is frequently %                   advantageous if they have about the same number of samples.%                   This parameters allows one to set the maximum number of%                   samples plotted. The ones selected aere randomly chosen.%                   Default: {nsamp','inf'}    No upper limit%         'seed'    Seed of the random-number generator that controlls the%                   subset chosen by keyword "nsamp".%                   Default: {'seed',9999}%         'xaxis'   Possible values are 'linear' and 'log' (linear or logarithmic x-axis)%                   Default: {'xaxis','linear'}%         'yaxis'   Possible values are 'linear' and 'log' (linear or logarithmic y-axis)%                   Default: {'yaxis','linear'}% OUTPUT% aux     structure auxiliary info in the following fields%       'figure_handle'   handle to the figure%       'nsamp'           number of samples plotted%% EXAMPLE%       wlog=l_data;%       l_crossplot(wlog,'vp','rho',{'marker','+'},{'xaxis','linear'},{'yaxis','linear'})      % UPDATE HISTORY%       December 15, 2005: general update; added cursor tracking, figure-export menu%       Defaults of input argumentsparam.color='r';param.depths=[];param.figure='new';param.rows='';param.linewidth=1.5;param.linestyle='none';     % No connecting linesparam.marker='*';param.markersize=5;param.nsamp=inf;param.seed=9999;param.xaxis='linear';param.yaxis='linear';%       Replace defaults by input parametersparam=assign_input(param,varargin);if ~istype(wlog,'well_log')   error(' First input argument must be a well log')end%       Select log samples based on depth range and row restrictionsif ~isempty(param.depths)   if iscell(param.depths)      wlog=l_select(wlog,{'depths',cat(2,param.depths{:})});   else      wlog=l_select(wlog,{'depths',param.depths});   endendif ~isempty(param.rows)   wlog=l_select(wlog,{'rows',param.rows});end%       Get requested curves and the related rows of curve_info[c1,info1]=l_gc(wlog,mnem1);[c2,info2]=l_gc(wlog,mnem2);%     Select subset of samples?nsamp=length(c1);if nsamp > param.nsamp   rand('twister',param.seed)   idx=randperm(nsamp);   idx=idx(1:param.nsamp);   c1=c1(idx);   c2=c2(idx);   nsamp=length(c1);end%%       Create figure window (if required)if strcmpi(param.figure,'new')   aux.figure_handle=lfigure;else   aux.figure_handle=gcf;end%%       Make cross-plotif strcmpi(param.xaxis,'linear') && strcmpi(param.yaxis,'linear')   line(c1,c2,'Color',param.color,'Marker',param.marker,'MarkerSize',param.markersize, ...      'LineWidth',param.linewidth,'LineStyle',param.linestyle)elseif strcmpi(param.xaxis,'log') && strcmpi(param.yaxis,'linear')   semilogx(c1,c2,'Color',param.color,'Marker',param.marker,'MarkerSize',param.markersize, ...      'LineWidth',param.linewidth,'LineStyle',param.linestyle)  elseif strcmpi(param.xaxis,'linear') && strcmpi(param.yaxis,'log')   semilogy(c1,c2,'Color',param.color,'Marker',param.marker,'MarkerSize',param.markersize, ...      'LineWidth',param.linewidth,'LineStyle',param.linestyle)elseif strcmpi(param.xaxis,'log') && strcmpi(param.yaxis,'log')   loglog(c1,c2,'Color',param.color,'Marker',param.marker,'MarkerSize',param.markersize, ...      'LineWidth',param.linewidth,'LineStyle',param.linestyle)  else   error([' At least one of the axis parameters ("',param.xaxis,'", "',param.yaxis,'") is wrong'])endmytitle(['Cross-plot: ',strrep(wlog.name,'_','\_')])xlabel(info2label(info1))ylabel(info2label(info2))grid onzoom onbox onbgGrayinitiate_2d_tracking(info1,info2)if nargout == 0   clear auxelse   aux.nsamp=nsamp;end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -