Ignore:
Timestamp:
04/21/11 07:34:15 (14 years ago)
Author:
Mathieu Morlighem
Message:

Moved inset to applyoptions (more general)
Added 'offsetaxispos' option to get more space
Posting for gridded plot has a default value
Clipped text so that it does not appear if outside of the box

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/model/plot/applyoptions.m

    r7946 r8001  
    284284                textpositioni=textposition{i};
    285285                textrotationi=textrotation{i};
    286                 text(textpositioni(1),textpositioni(2),textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
     286                h=text(textpositioni(1),textpositioni(2),textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
     287                set(h,'Clipping','on'); %prevent text from appearing outside of the box
    287288        end
    288289end
     
    326327if exist(options,'ytick'),
    327328        set(gca,'ytick',getfieldvalue(options,'ytick'));
     329end
     330
     331%Axis positions
     332if exist(options,'offsetaxispos'),
     333        offset=getfieldvalue(options,'offsetaxispos');
     334        P=get(gca,'pos');
     335        P(1)=P(1)+offset(1);
     336        P(2)=P(2)+offset(2);
     337        P(3)=P(3)+offset(3);
     338        P(3)=P(4)+offset(4);
     339        set(gca,'pos',P);
    328340end
    329341
     
    339351                        set(gcf,'Position',[756    62   827   504]);
    340352                elseif strcmpi(figposition,'mathieu'),
    341                         set(gcf,'Position',[1 1 1580 1150]);
     353                        set(gcf,'Position',[300 1 1580 1150]);
    342354                elseif strcmpi(figposition,'fullscreen'),
    343355                        set(gcf,'Position',get(0,'ScreenSize'));
     
    378390%showregion
    379391if strcmpi(getfieldvalue(options,'showregion','off'),'on'),
     392        %Keep pointer of main axis
     393        maingca=gca;
    380394        %get inset relative position (x,y,width,height)
    381395        insetpos=getfieldvalue(options,'insetpos',[0.02 0.70 0.18 0.18]);
    382396        %get current plos position
    383         cplotpos=get(gca,'pos');
     397        cplotpos=get(maingca,'pos');
    384398        %compute inset position
    385399        PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
     
    408422        patch( [mdx(1) mdx(2) mdx(2) mdx(1)],[mdy(1) mdy(1) mdy(2) mdy(2)],ones(4,1),'EdgeColor',[0 0 0],'FaceColor','r','FaceAlpha',0.5)
    409423        colorbar('off');
     424        %back to main gca
     425        set(gcf,'CurrentAxes',maingca)
    410426end
    411427
     
    434450        light('Position',[0 0.1 0.1],'Style','infinite');
    435451end
     452
     453%========================%
     454%OK VERY LAST STEP: INSET|
     455%========================%
     456if exist(options,'inset'),
     457
     458        %Keep pointer of main axis
     459        maingca=gca;
     460        %get inset relative position (x,y,width,height)
     461        insetpos=getfieldvalue(options,'insetpos',[0.56 0.55 0.35 0.35]);
     462        %get current plot position
     463        cplotpos=get(gca,'pos');
     464        %compute inset position
     465        PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
     466        %show pos
     467        X1=getfieldvalue(options,'insetx',xlim);
     468        Y1=getfieldvalue(options,'insety',ylim);
     469        if strcmpi(getfieldvalue(options,'showinset','off'),'on')
     470                line(X1([1 2 2 1 1]),Y1([1 1 2 2 1]),zeros(1,5),'Color','k','LineWidth',2);
     471        end
     472
     473        %Get current figure
     474        ax1=gca;
     475
     476        %plot inset
     477        axes('pos',PosInset);
     478        copyobj(get(ax1,'children'),gca);
     479        patch('Faces',[1 2 3 4 1],'Vertices',[X1([1 2 2 1])' Y1([1 1 2 2])'],'FaceColor','None','EdgeColor','k','LineWidth',2);
     480
     481        %applay options
     482        options=removefield(options,'text',0);
     483        options=removefield(options,'inset',0);
     484        options=removefield(options,'offsetaxispos',0);
     485        options=removefield(options,'showregion',0);
     486        options=changefieldvalue(options,'colorbar',0);
     487        options=changefieldvalue(options,'latlon','off');
     488        options=changefieldvalue(options,'axis','equal off');
     489        options=changefieldvalue(options,'xlim',getfieldvalue(options,'insetx',xlim));
     490        options=changefieldvalue(options,'ylim',getfieldvalue(options,'insety',ylim));
     491        applyoptions(md,data,options);
     492
     493        %back to main gca
     494        set(gcf,'CurrentAxes',maingca)
     495end
Note: See TracChangeset for help on using the changeset viewer.