Changeset 569 for trunk/src/plot_field.m
- Timestamp:
- Feb 19, 2013, 7:19:07 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/plot_field.m
r546 r569 102 102 if ~exist('PlotParam','var'),PlotParam=[];end; 103 103 PlotType='text'; %default 104 PlotParamOut=PlotParam;%default105 104 if ~isfield(PlotParam,'Coordinates') 106 105 PlotParam.Coordinates=[]; 107 106 end 107 PlotParamOut=PlotParam;%default 108 108 109 109 %% check input structure … … 152 152 haxes=axes; 153 153 set(haxes,'position',[0.13,0.2,0.775,0.73]) 154 PlotParam .NextPlot='add'; %parameter for plot_profile and plot_his154 PlotParamOut.NextPlot='add'; %parameter for plot_profile 155 155 else 156 156 hfig=get(haxes,'parent'); … … 160 160 161 161 %% set axes properties 162 if isfield(PlotParam .Coordinates,'CheckFixLimits') && isequal(PlotParam.Coordinates.CheckFixLimits,1) %adjust the graph limits162 if isfield(PlotParamOut.Coordinates,'CheckFixLimits') && isequal(PlotParamOut.Coordinates.CheckFixLimits,1) %adjust the graph limits 163 163 set(haxes,'XLimMode', 'manual') 164 164 set(haxes,'YLimMode', 'manual') … … 171 171 % end 172 172 errormsg=''; 173 PlotParamOut.Coordinates=[]; %default output173 %PlotParamOut.Coordinates=[]; %default output 174 174 AxeData=get(haxes,'UserData'); 175 175 … … 179 179 else %plot 2D field 180 180 if ~exist('PosColorbar','var'),PosColorbar=[];end; 181 [tild,PlotParamOut,PlotType,errormsg]=plot_plane(Data,CellInfo(index_2D),haxes,PlotParam ,PosColorbar);181 [tild,PlotParamOut,PlotType,errormsg]=plot_plane(Data,CellInfo(index_2D),haxes,PlotParamOut,PosColorbar); 182 182 AxeData.NbDim=2; 183 183 if testzoomaxes && isempty(errormsg) 184 [zoomaxes,PlotParamOut,tild,errormsg]=plot_plane(Data,CellInfo(index_2D),zoomaxes,PlotParam ,PosColorbar);184 [zoomaxes,PlotParamOut,tild,errormsg]=plot_plane(Data,CellInfo(index_2D),zoomaxes,PlotParamOut,PosColorbar); 185 185 AxeData.ZoomAxes=zoomaxes; 186 186 end … … 193 193 end 194 194 else %plot 1D field (usual graph y vs x) 195 Coordinates=plot_profile(Data,CellInfo(index_1D),haxes,PlotParam.Coordinates);%195 PlotParamOut.Coordinates=plot_profile(Data,CellInfo(index_1D),haxes,PlotParamOut.Coordinates);% 196 196 if testzoomaxes 197 [zoomaxes, Coordinates]=plot_profile(Data,CellInfo(index_1D),zoomaxes,PlotParam.Coordinates);197 [zoomaxes,PlotParamOut.Coordinates]=plot_profile(Data,CellInfo(index_1D),zoomaxes,PlotParamOut.Coordinates); 198 198 AxeData.ZoomAxes=zoomaxes; 199 199 end 200 if ~isempty(Coordinates)201 PlotParamOut.Coordinates=Coordinates;202 end200 % if ~isempty(Coordinates) 201 % PlotParamOut.Coordinates=Coordinates; 202 % end 203 203 PlotType='line'; 204 204 end … … 231 231 % AxeData=[]; 232 232 if isfield(PlotParamOut,'MinX') 233 AxeData.RangeX=[PlotParamOut.MinX PlotParamOut.MaxX]; %'[PlotParamOut.MinX PlotParamOut.MaxX];234 AxeData.RangeY=[PlotParamOut.MinY PlotParamOut.MaxY]; %[PlotParamOut.MinY PlotParamOut.MaxY]233 AxeData.RangeX=[PlotParamOut.MinX PlotParamOut.MaxX]; 234 AxeData.RangeY=[PlotParamOut.MinY PlotParamOut.MaxY]; 235 235 end 236 236 set(haxes,'UserData',AxeData) … … 359 359 ytitle=''; 360 360 test_newplot=1; 361 361 MinX=[]; 362 MaxX=[]; 363 MinY_cell=[]; 364 MaxY_cell=[]; 362 365 %loop on input fields 363 366 for icell=1:numel(CellInfo) … … 367 370 coord_x_name{icell}=data.ListVarName{coord_x_index}; 368 371 coord_x{icell}=data.(data.ListVarName{coord_x_index});%coordinate variable set as coord_x 369 if isempty(find(strcmp(coord_x_name{icell},coord_x_name(1:end-1)) )) %xtitle not already selected372 if isempty(find(strcmp(coord_x_name{icell},coord_x_name(1:end-1)), 1)) %xtitle not already selected 370 373 xtitle=[xtitle coord_x_name{icell}]; 371 374 if isfield(data,'VarAttribute')&& numel(data.VarAttribute)>=coord_x_index && isfield(data.VarAttribute{coord_x_index},'units') … … 375 378 end 376 379 end 377 XMin(icell)=min(coord_x{icell});378 XMax(icell)=max(coord_x{icell});380 MinX(icell)=min(coord_x{icell}); 381 MaxX(icell)=max(coord_x{icell}); 379 382 testplot(coord_x_index)=0; 380 383 if isfield(CellInfo{icell},'VarIndex_ancillary') … … 399 402 charplot_0='''-'''; 400 403 end 401 YMin=0; 402 YMax=1;%default 404 MinY=[]; 405 MaxY=[];%default 406 407 nbplot=0; 403 408 for ivar=1:length(VarIndex) 404 409 if testplot(VarIndex(ivar)) 405 410 VarName=data.ListVarName{VarIndex(ivar)}; 411 nbplot=nbplot+1; 406 412 ytitle=[ytitle VarName]; 407 413 if isfield(data,'VarAttribute')&& numel(data.VarAttribute)>=VarIndex(ivar) && isfield(data.VarAttribute{VarIndex(ivar)},'units') … … 412 418 eval(['data.' VarName '=squeeze(data.' VarName ');']) 413 419 %eval(['min(data.' VarName ')']) 414 YMin(ivar)=min(min(data.(VarName)));415 YMax(ivar)=max(max(data.(VarName)));420 MinY(ivar)=min(min(data.(VarName))); 421 MaxY(ivar)=max(max(data.(VarName))); 416 422 plotstr=[plotstr 'coord_x{' num2str(icell) '},data.' VarName ',' charplot_0 ',']; 417 423 eval(['nbcomponent2=size(data.' VarName ',2);']); … … 429 435 end 430 436 end 431 YMin_cell(icell)=min(YMin); 432 YMax_cell(icell)=max(YMax); 437 if ~isempty(MinY) 438 MinY_cell(icell)=min(MinY); 439 MaxY_cell(icell)=max(MaxY); 440 end 433 441 end 434 442 … … 478 486 end 479 487 htitle=title(title_str); 480 % txt=ver('MATLAB');481 % Release=txt.Release;482 % relnumb=str2double(Release(3:4));483 % if relnumb >= 14484 488 set(htitle,'Interpreter','none')% desable tex interpreter 485 % end486 489 end 487 490 488 491 %% determine axes bounds 489 %CoordinatesOut.RangeX=[min(XMin) max(XMax)];490 %CoordinatesOut.RangeY=[min(YMin_cell) max(YMax_cell)];491 492 fix_lim=isfield(Coordinates,'CheckFixLimits') && Coordinates.CheckFixLimits; 493 check_lim=isfield(Coordinates,'MinX')&&isfield(Coordinates,'MaxX')&&isfield(Coordinates,'MinY')&&isfield(Coordinates,'MaxY'); 492 494 if fix_lim 493 if ~ isfield(Coordinates,'MinX')||~isfield(Coordinates,'MaxX')||~isfield(Coordinates,'MinY')||~isfield(Coordinates,'MaxY')494 fix_lim=0; %free limits if li ts are not set,495 if ~check_lim 496 fix_lim=0; %free limits if limits are not set, 495 497 end 496 498 end … … 498 500 set(haxes,'XLim',[Coordinates.MinX Coordinates.MaxX]) 499 501 set(haxes,'YLim',[Coordinates.MinY Coordinates.MaxY]) 500 else 501 CoordinatesOut.MinX=min(XMin); 502 CoordinatesOut.MaxX=max(XMax); 503 CoordinatesOut.MinY=min(YMin_cell); 504 CoordinatesOut.MaxY=max(YMax_cell); 502 else 503 if ~isempty(MinX) 504 if check_lim 505 CoordinatesOut.MinX=min(min(MinX),CoordinatesOut.MinX); 506 CoordinatesOut.MaxX=max(max(MaxX),CoordinatesOut.MaxX); 507 else 508 CoordinatesOut.MinX=min(MinX); 509 CoordinatesOut.MaxX=max(MaxX); 510 end 511 end 512 if ~isempty(MinY_cell) 513 if check_lim 514 CoordinatesOut.MinY=min(min(MinY_cell),CoordinatesOut.MinY); 515 CoordinatesOut.MaxY=max(max(MaxY_cell),CoordinatesOut.MaxY); 516 else 517 CoordinatesOut.MinY=min(MinY_cell); 518 CoordinatesOut.MaxY=max(MaxY_cell); 519 end 520 end 505 521 end 506 522 … … 791 807 PlotParamOut.Scalar.MinA=MinA; 792 808 PlotParamOut.Scalar.MaxA=MaxA; 809 PlotParamOut.Scalar.Npx=size(A,2); 810 PlotParamOut.Scalar.Npy=size(A,1); 793 811 % case of contour plot 794 812 if CheckContour … … 1089 1107 %store the coordinate extrema occupied by the field 1090 1108 if ~isempty(Data) 1091 XMin=[];1092 XMax=[];1093 YMin=[];1094 YMax=[];1109 MinX=[]; 1110 MaxX=[]; 1111 MinY=[]; 1112 MaxY=[]; 1095 1113 fix_lim=isfield(PlotParam.Coordinates,'CheckFixLimits') && PlotParam.Coordinates.CheckFixLimits; 1096 1114 if fix_lim 1097 1115 if isfield(PlotParam.Coordinates,'MinX')&&isfield(PlotParam.Coordinates,'MaxX')&&isfield(PlotParam.Coordinates,'MinY')&&isfield(PlotParam.Coordinates,'MaxY') 1098 XMin=PlotParam.Coordinates.MinX;1099 XMax=PlotParam.Coordinates.MaxX;1100 YMin=PlotParam.Coordinates.MinY;1101 YMax=PlotParam.Coordinates.MaxY;1102 end %else PlotParamOut. XMin =PlotParam.XMin...1116 MinX=PlotParam.Coordinates.MinX; 1117 MaxX=PlotParam.Coordinates.MaxX; 1118 MinY=PlotParam.Coordinates.MinY; 1119 MaxY=PlotParam.Coordinates.MaxY; 1120 end %else PlotParamOut.MinX =PlotParam.MinX... 1103 1121 else 1104 1122 if test_ima %both background image and vectors coexist, take the wider bound 1105 XMin=min(AX);1106 XMax=max(AX);1107 YMin=min(AY);1108 YMax=max(AY);1123 MinX=min(AX); 1124 MaxX=max(AX); 1125 MinY=min(AY); 1126 MaxY=max(AY); 1109 1127 if test_vec 1110 XMin=min(XMin,min(vec_X));1111 XMax=max(XMax,max(vec_X));1112 YMin=min(YMin,min(vec_Y));1113 YMax=max(YMax,max(vec_Y));1128 MinX=min(MinX,min(vec_X)); 1129 MaxX=max(MaxX,max(vec_X)); 1130 MinY=min(MinY,min(vec_Y)); 1131 MaxY=max(MaxY,max(vec_Y)); 1114 1132 end 1115 1133 elseif test_vec 1116 XMin=min(vec_X);1117 XMax=max(vec_X);1118 YMin=min(vec_Y);1119 YMax=max(vec_Y);1120 end 1121 end 1122 PlotParamOut.Coordinates.MinX= XMin;1123 PlotParamOut.Coordinates.MaxX= XMax;1124 PlotParamOut.Coordinates.MinY= YMin;1125 PlotParamOut.Coordinates.MaxY= YMax;1126 if XMax>XMin1127 set(haxes,'XLim',[ XMin XMax]);% set x limits of frame in axes coordinates1128 end 1129 if YMax>YMin1130 set(haxes,'YLim',[ YMin YMax]);% set x limits of frame in axes coordinates1134 MinX=min(vec_X); 1135 MaxX=max(vec_X); 1136 MinY=min(vec_Y); 1137 MaxY=max(vec_Y); 1138 end 1139 end 1140 PlotParamOut.Coordinates.MinX=MinX; 1141 PlotParamOut.Coordinates.MaxX=MaxX; 1142 PlotParamOut.Coordinates.MinY=MinY; 1143 PlotParamOut.Coordinates.MaxY=MaxY; 1144 if MaxX>MinX 1145 set(haxes,'XLim',[MinX MaxX]);% set x limits of frame in axes coordinates 1146 end 1147 if MaxY>MinY 1148 set(haxes,'YLim',[MinY MaxY]);% set x limits of frame in axes coordinates 1131 1149 end 1132 1150 set(haxes,'YDir','normal')
Note: See TracChangeset
for help on using the changeset viewer.