Hi,
I have a plot and I want to draw several vertical lines (about 40 of them) at specific locations on the plot. How do I go about it? Any code that I can put all those locations in and automatically mark those regions of the plot with vertical lines for me? Thanks!

 채택된 답변

Luna
Luna 2019년 12월 3일
편집: Luna 2019년 12월 3일

0 개 추천

There is a built-in function for that.
For vertical lines use xline and for horizonal lines use yline.
Here is sample code:
regions_to_be_marked = randn(40,1); % array of the points you want to plot vertical line (x axis values)
x_data = randn(100,1); % x data to plot
y_data = randn(100,1); % y data to plot
hFig = figure; % figure handle
hAxes = axes(hFig); % axis handle
hPlot = plot(hAxes,x_data,y_data,'LineStyle','none','Marker','*'); % your actual plot
hold on; % holds current plot
% plot each region in for loop
for i = 1:numel(regions_to_be_marked)
xline(hAxes, regions_to_be_marked(i),'LineWidth',2,'Color','red');
end

댓글 수: 2

Curious Mind
Curious Mind 2019년 12월 3일
Thank you!
Luna
Luna 2019년 12월 4일
Your welcome :)

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

추가 답변 (1개)

the cyclist
the cyclist 2019년 12월 3일

0 개 추천

If you have R2018b or later, you can use the xline command.
If you have an earlier version, you can use the line command (which is just a bit more working in defining the endpoints).

댓글 수: 2

Curious Mind
Curious Mind 2019년 12월 3일
Thank you for the information. I have seen the xline function but if I have say 40 regions I want to mark, I will have to do it for each one of them. Is there a way to enter all 40 regions and get those regions marked at the same time?
Luna
Luna 2019년 12월 3일
Check my answer above, I made a sample plot for your case.

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

카테고리

도움말 센터File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

제품

질문:

2019년 12월 3일

댓글:

2019년 12월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by