How can I add the percentage result on plotted figure ?
조회 수: 11 (최근 30일)
이전 댓글 표시
Hi I have this code. Everything is fine, the code plots wavelength-intensity relationship according to the csv data and it labels the peak point. So my question is I have a formula for the percentage. It's (intensity/intensity_max)*100 so I need to add a text code that will solve the equation and it will show the result for every if and elseif state on the figure.
댓글 수: 0
답변 (2개)
Alan Stevens
2021년 6월 22일
doc text
댓글 수: 5
Alan Stevens
2021년 6월 22일
You have intensity values at all waveengths!
Since the first "if" section just considers intensity_max, not intensity, I guess you want to calculate
(intensity_max/345.1)*100.
If so, then do something like:
pc = (intensity_max/intensity)*100;
then after your plot command do something like
text(x,y,num2str(pc))
where you choose x and y as suitable coordinates to place the value where you want on the graph.
Steven Lord
2021년 6월 22일
FYI if you want the only marker to be at the highest point you could use MarkerIndices rather than plotting two separate lines.
x = 1:100;
y = 20*rand(size(x));
[~, ind] = max(y);
plot(x, y, 'o-', 'MarkerFaceColor', 'r', 'MarkerIndices', ind)
I'm not 100% sure of what you're looking for, but do you want to have lines across the plot indicating when the values are in certain ranges?
figure
plot(x, y, 'o-', 'MarkerFaceColor', 'r', 'MarkerIndices', ind)
hold on
yline(10, 'Label', 'halfway point');
yline(5, 'Label', 'quarter of the way through')
댓글 수: 12
Walter Roberson
2021년 6월 24일
편집: Walter Roberson
2021년 6월 24일
txt = sprintf('ratio = %.2f', (intensity/intensity_max)*100);
title(txt)
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!