필터 지우기
필터 지우기

Is it possible to draw a line across all plots in a stackedplot?

조회 수: 12 (최근 30일)
Bryan Conklin
Bryan Conklin 2020년 4월 20일
댓글: Ameer Hamza 2020년 4월 22일
figure;
chans = 10;
for subplotN=1:chans-1 %plot first set of time-series
x = 1:2841;
y(:,subplotN) = randn(2841,1)*50;
end
y(:,subplotN+1) = randn(1,2841)*1e6;
stackedplot(x,y)
Is it possible to draw vertical lines across all stackedplots like in the figure below?

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 4월 20일
편집: Ameer Hamza 2020년 4월 20일
I am not sure if there is any direct option, but you can use annotation() to draw a line on the figure window such that it appears on the axes at correct locations. Following code shows an example
figure;
chans = 10;
for subplotN=1:chans-1 %plot first set of time-series
x = 1:2841;
y(:,subplotN) = randn(2841,1)*50;
end
y(:,subplotN+1) = randn(1,2841)*1e6;
s = stackedplot(x,y);
pos = s.Position;
xlims = s.xlim;
line_locations = [500 1000 1500 2000 2500];
line_locations_norm = interp1(xlims, cumsum(pos([1 3])), line_locations);
for i=1:numel(line_locations_norm)
annotation('line', ...
[line_locations_norm(i) line_locations_norm(i)], ...
[pos(2) pos(2)+pos(4)], ...
'Color', 'r', ...
'LineWidth', 1);
end
  댓글 수: 4
Bryan Conklin
Bryan Conklin 2020년 4월 22일
Thanks Ameer! I was able to modify that approach to end up with the subplot I needed.

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

추가 답변 (0개)

카테고리

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

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by