Changeset 873 for trunk/src/plot_field.m


Ignore:
Timestamp:
Feb 17, 2015, 1:46:13 AM (9 years ago)
Author:
sommeria
Message:

civ improved at mask edge

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plot_field.m

    r872 r873  
    222222
    223223%% text display
    224 htext=findobj(hfig,'Tag','TableDisplay');
    225 hchecktable=findobj(hfig,'Tag','CheckTable');
    226 if ~isempty(htext)&&~isempty(hchecktable)
    227     if isempty(index_0D)
    228 %         set(htext,'Data',{})
    229 %         set(htext,'visible','off')
    230 %         set(hchecktable,'visible','off')
    231 %         set(hchecktable,'Value',0)
    232     else
    233         errormsg=plot_text(Data,CellInfo(index_0D),htext);
    234         set(htext,'visible','on')
    235         set(hchecktable,'visible','on')
    236         set(hchecktable,'Value',1)
    237     end
    238     set(hfig,'Unit','pixels');
    239     set(htext,'Unit','pixels')
    240     PosFig=get(hfig,'Position');
    241     % case of no plot with view_field: only text display
    242     if strcmp(get(hfig,'Tag'),'view_field')
    243         if isempty(index_1D) && isempty(index_2D)% case of no plot: only text display
    244             set(haxes,'Visible','off')         
    245             PosTable=get(htext,'Position');
    246             set(hfig,'Position',[PosFig(1) PosFig(2)  PosTable(3) PosTable(4)])
    247         else
    248             set(haxes,'Visible','on')
    249             set(hfig,'Position',[PosFig(1) PosFig(2)  877 677])%default size for view_field
    250         end
    251     end
    252 end
    253 
     224if ~(isfield(PlotParamOut,'Axes')&&isfield(PlotParamOut.Axes,'TextDisplay')&&(PlotParamOut.Axes.TextDisplay)) % if text is not already given as statistics
     225    htext=findobj(hfig,'Tag','TableDisplay');
     226    hchecktable=findobj(hfig,'Tag','CheckTable');
     227    if ~isempty(htext)&&~isempty(hchecktable)
     228        if isempty(index_0D)
     229            %         set(htext,'Data',{})
     230            %         set(htext,'visible','off')
     231            %         set(hchecktable,'visible','off')
     232            %         set(hchecktable,'Value',0)
     233        else
     234            errormsg=plot_text(Data,CellInfo(index_0D),htext);
     235            set(htext,'visible','on')
     236            set(hchecktable,'visible','on')
     237            set(hchecktable,'Value',1)
     238        end
     239        set(hfig,'Unit','pixels');
     240        set(htext,'Unit','pixels')
     241        PosFig=get(hfig,'Position');
     242        % case of no plot with view_field: only text display
     243        if strcmp(get(hfig,'Tag'),'view_field')
     244            if isempty(index_1D) && isempty(index_2D)% case of no plot: only text display
     245                set(haxes,'Visible','off')
     246                PosTable=get(htext,'Position');
     247                set(hfig,'Position',[PosFig(1) PosFig(2)  PosTable(3) PosTable(4)])
     248            else
     249                set(haxes,'Visible','on')
     250                set(hfig,'Position',[PosFig(1) PosFig(2)  877 677])%default size for view_field
     251            end
     252        end
     253    end
     254end
    254255%% display error message
    255256if ~isempty(errormsg)
     
    574575%% give statistics for pdf
    575576ind_var=find(testplot);
    576 if numel(ind_var)==1 && isfield(data,'VarAttribute') &&numel(data.VarAttribute)>=ind_var &&...
    577         isfield(data.VarAttribute{ind_var},'Role') && strcmp(data.VarAttribute{ind_var}.Role,'histo')
    578     pdf_val=data.(data.ListVarName{ind_var});
    579     x=coord_x{1};
    580     TableData=cell(12,2);
    581     TableData(:,1)={'SampleNbr';'Mean';'RMS';'Skewness';'Kurtosis';...
    582         'Min';'FirstCentile';'FirstDecile';'Median';'LastDecile';'LastCentile';'Max'};
    583     Val=zeros(12,1);
    584     Val(1)=sum(pdf_val);% total sample number
    585     pdf_val=pdf_val/Val(1);% normalised pdf
    586     Val(2)=sum(x.*pdf_val);%Mean
    587     x=x-Val(2); %centered variable
    588     Variance=sum(x.*x.*pdf_val);
    589     Val(3)=sqrt(Variance);
    590     Val(4)=(sum(x.*x.*x.*pdf_val))/(Variance*Val(3));%skewness
    591     Val(5)=(sum(x.*x.*x.*x.*pdf_val))/(Variance*Variance);%kurtosis
    592     Val(6)=min(x);
    593     cumpdf=cumsum(pdf_val);
    594     ind_centile=find(cumpdf>=0.01,1);
    595     Val(7)=x(ind_centile);
    596     ind_decile=find(cumpdf>=0.1,1);
    597     Val(8)=x(ind_decile);
    598     ind_median=find(cumpdf>= 0.5,1);
    599     Val(9)=x(ind_median);
    600     ind_decile=find(cumpdf>=0.9,1);
    601     Val(10)=x(ind_decile);
    602     ind_centile=find(cumpdf>=0.99,1);
    603     Val(11)=x(ind_centile);
    604     Val(12)=max(x);   
    605     TableData(:,2)=mat2cell(Val,ones(12,1),1)
    606     TableData=[TableData(1:5,:);{'   -- centered','stat: --'};TableData(6:12,:)];
    607     htable=findobj(hfig,'Tag','TableDisplay')
     577TableData={'Variable';'SampleNbr';'bin size';'Mean';'RMS';'Skewness';'Kurtosis';'    centered ';...
     578    'Min';'FirstCentile';'FirstDecile';'Median';'LastDecile';'LastCentile';'Max'};
     579CoordinatesOut.TextDisplay=0;
     580for icell=1:numel(CellInfo)
     581    if isfield(CellInfo{icell},'VarIndex_histo')
     582        check_stat=1;
     583        CoordinatesOut.TextDisplay=1;
     584        VarName=data.ListVarName{CellInfo{icell}.CoordIndex};
     585        pdf_val=data.(data.ListVarName{CellInfo{icell}.VarIndex_histo});
     586        x=coord_x{icell};
     587        Val=zeros(12,1);
     588        Val(1)=sum(pdf_val);% total sample number
     589        Val(7)=min(x);
     590        Val(13)=max(x);
     591        Val(2)=(Val(13)-Val(7))/(numel(x)-1);%bin size
     592        pdf_val=pdf_val/Val(1);% normalised pdf
     593        Val(3)=sum(x.*pdf_val);%Mean
     594        x=x-Val(3); %centered variable
     595        Variance=sum(x.*x.*pdf_val);
     596        Val(4)=sqrt(Variance);
     597        Val(5)=(sum(x.*x.*x.*pdf_val))/(Variance*Val(4));%skewness
     598        Val(6)=(sum(x.*x.*x.*x.*pdf_val))/(Variance*Variance);%kurtosis
     599        cumpdf=cumsum(pdf_val);
     600        ind_centile=find(cumpdf>=0.01,1);% first index with cumsum >=0.01
     601        Val(8)=(cumpdf(ind_centile)-0.01)*x(ind_centile-1)+(0.01-cumpdf(ind_centile-1))*x(ind_centile);
     602        Val(8)=Val(8)/(cumpdf(ind_centile)-cumpdf(ind_centile-1));%linear interpolation near ind_centile
     603        ind_decile=find(cumpdf>=0.1,1);
     604        Val(9)=(cumpdf(ind_decile)-0.1)*x(ind_decile-1)+(0.1-cumpdf(ind_decile-1))*x(ind_decile);
     605        Val(9)=Val(9)/(cumpdf(ind_decile)-cumpdf(ind_decile-1));%linear interpolation near ind_decile;
     606        ind_median=find(cumpdf>= 0.5,1);
     607        Val(10)=(cumpdf(ind_median)-0.5)*x(ind_median-1)+(0.5-cumpdf(ind_median-1))*x(ind_median);
     608        Val(10)=Val(10)/(cumpdf(ind_median)-cumpdf(ind_median-1));%linear interpolation near ind_median;
     609        %     Val(9)=x(ind_median);
     610        ind_decile=find(cumpdf>=0.9,1);
     611        Val(11)=(cumpdf(ind_decile)-0.9)*x(ind_decile-1)+(0.9-cumpdf(ind_decile-1))*x(ind_decile);
     612        Val(11)=Val(11)/(cumpdf(ind_decile)-cumpdf(ind_decile-1));%linear interpolation near ind_median;
     613        ind_centile=find(cumpdf>=0.99,1);
     614        Val(12)=(cumpdf(ind_centile)-0.99)*x(ind_centile-1)+(0.99-cumpdf(ind_centile-1))*x(ind_centile);
     615        Val(12)=Val(12)/(cumpdf(ind_centile)-cumpdf(ind_centile-1));%linear interpolation near ind_centile;
     616        Val(13)=max(x);
     617        Column=mat2cell(Val,ones(13,1),1);
     618        Column=[{VarName};Column(1:6);{'stat: --'};Column(7:13)];
     619        TableData=[TableData Column];
     620    end
     621end
     622if CoordinatesOut.TextDisplay;
     623    disp(TableData);
     624    htable=findobj(hfig,'Tag','TableDisplay');
    608625    set(htable,'Data',TableData)
    609626    set(htable,'Visible','on')
Note: See TracChangeset for help on using the changeset viewer.