Prevent plot() filling missing data between points

조회 수: 44 (최근 30일)
Louise Wilson
Louise Wilson 2021년 1월 26일
댓글: Louise Wilson 2021년 1월 26일
I have the plot belo where x=datenum and y=SPL. You can see, particularly in the second plot down, that there are periods where the data 'jumps'. This is because there are some missing days in the dataset. How do I leave these periods blank rather than having Matlab fill them in automatically? This is sound data so it is not correct to interpolate between the two points like this.
%all subplots use the same approach:
subplot(5,1,1)
X = [dBcalc_goat(:,1)' fliplr(dBcalc_goat(:,1)')];
Y = [dBcalc_goat(:,7)' fliplr(dBcalc_goat(:,10)')];
fill(X,Y,[0.929411764705882 0.694117647058824 0.125490196078431],...
'EdgeColor',[0.929411764705882 0.694117647058824 0.125490196078431]);
hold on
plot(dBcalc_goat(:,1),dBcalc_goat(:,5),'Color',[1 0 0],'LineWidth',2); %RMS level
plot(dBcalc_goat(:,1),dBcalc_goat(:,4),'Color',[ 0 0 0]); %median
plot(dBcalc_goat(:,1),dBcalc_goat(:,7),'Color',[0.929411764705882 0.694117647058824 0.125490196078431]); %5th percentile
plot(dBcalc_goat(:,1),dBcalc_goat(:,10),'Color',[0.929411764705882 0.694117647058824 0.125490196078431]); %95th percentile
xlim([first last]);
xticks([])
ylim([100 140])
xline(winter_19,'--');
xline(spring_19,'--');
xline(summer_20,'--');
xline(autumn_20,'--');

채택된 답변

Matt Gaidica
Matt Gaidica 2021년 1월 26일
Use NaN.
  댓글 수: 5
Walter Roberson
Walter Roberson 2021년 1월 26일
Don't Do That. Use a cell array.
Louise Wilson
Louise Wilson 2021년 1월 26일
Great, I have it now, thanks Walter! I was using the following to fill the space between the upper and lower line before, when I didn't have the NaNs, but now it doesn't work with the NaNs. Do you know how I could fill the space between the plots when there are NaNs in there?
subplot(5,1,1)
X = [dBcalcs.GoatIsland(:,1)' fliplr(dBcalcs.GoatIsland(:,1)')]; %fill gap between percentile lines
Y = [dBcalcs.GoatIsland(:,7)' fliplr(dBcalcs.GoatIsland(:,10)')];
fill(X,Y,[0.929411764705882 0.694117647058824 0.125490196078431],...
'EdgeColor',[0.929411764705882 0.694117647058824 0.125490196078431]);
hold on
plot(dBcalcs.GoatIsland(:,1),dBcalcs.GoatIsland(:,5),'Color',[1 0 0],'LineWidth',2); %RMS level
plot(dBcalcs.GoatIsland(:,1),dBcalcs.GoatIsland(:,4),'Color',[ 0 0 0]); %median
plot(dBcalcs.GoatIsland(:,1),dBcalcs.GoatIsland(:,7),'Color',[0.929411764705882 0.694117647058824 0.125490196078431]); %5th percentile
plot(dBcalcs.GoatIsland(:,1),dBcalcs.GoatIsland(:,10),'Color',[0.929411764705882 0.694117647058824 0.125490196078431]); %95th percentile

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by