I want to label a plot using a label located on the drawed line, just as the countour function does.
I found that I can transform my function plot to a matrix (source) that I can give as input to the contour function
cols = 1:500 ;
rows = 150 + 100*sin(cols/100) ;
M = zeros(300,500) ;
idx = sub2ind(size(M), floor(rows), cols) ;
M(idx) = 1 ;
contour(M,'LevelList',1,'ShowText','on') ;
This produce the following figure
But this plot is not visible in all the domain, has two labels (I would like just one) and the label has not a white background (the number 1 intersect the line). How can I obtain a label like the following?

 채택된 답변

Voss
Voss 2022년 11월 11일

1 개 추천

Sounds like you want to use text:
x = 1:500 ;
y = 150 + 100*sin(x/100) ;
plot(x,y)
text(50*pi,250,'1', ...
'BackgroundColor','w', ...
'HorizontalAlignment','center')
ylim([0 300])

댓글 수: 2

Filippo Manoli
Filippo Manoli 2022년 11월 11일
Thank you, that's exactly what I needed! :)
Voss
Voss 2022년 11월 11일
You're welcome!

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

추가 답변 (0개)

카테고리

제품

릴리스

R2022b

질문:

2022년 11월 11일

댓글:

2022년 11월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by