How to display the coordinate of the point in the figure
Mostra commenti meno recenti
The problem is similar to this but I have an x-axis that decreases from 1 to 0 at increments of 0.1 https://www.mathworks.com/matlabcentral/answers/89104-how-to-display-the-coordinate-of-the-point-in-the-figure
for k=1:numel(x)
text(x(k),y(k),['(' num2str(x(k)) ',' num2str(y(k)) ')'])
end
I also need to adjust the window for this but axis won't work because it only applies for increases x-values.
Can someone advise me how to accommodate for these changes?
Risposte (3)
T
il 24 Gen 2016
0 voti
Walter Roberson
il 24 Gen 2016
0 voti
The labels are being put into the proper place on the graph. Your third point is at y = -3.something which happens to be outside the range of what you are displaying. That is not the fault of text(), that is because you have told it coordinates that are not on your graph.
5 Commenti
T
il 24 Gen 2016
Walter Roberson
il 24 Gen 2016
That code does not produce the plot you show above, not even if you set(gca,'xdir','reverse') to reverse the X axes. The upper line that is plotted in your image is about 5 units lower than the actual y2(y1(f)) value. Meanwhile the third text label that is to the upper right and outside the graph appears to be at the correct y2(y1(f)) value.
Side note: you can make your plotting shorter, using just a single statement.
h = plot( f , y1(f), '--o', f, y2(y1(f)), '--o' )
I would, by the way, not call the result ax1 as the result of plot() is line objects, not axes objects.
T
il 25 Gen 2016
Walter Roberson
il 25 Gen 2016
clf
f = [ 0.99 , 0.77, 0.55, 0.33 ];
y1 = @(f)(-14.2 +1000.0) * f.^(1.02 - 1.0) - 1000.0;
y2 = @(newvariable) (1.02 * (newvariable +1000.0) - 1000.0);
y1f = y1(f);
y2y1f = y2(y1f);
y1_0 = fzero(y1,[0,realmax]);
y2y1_0 = fzero(@(x) y2(y1(x)),[0,realmax]);
h = plot( f , y1f, '--ob', f, y2y1f, '--ok', y1_0, 0, '*r', y2y1_0, 0, '*g' );
set(gca, 'xdir', 'reverse')
XY = [f(:), y1f(:); f(:), y2y1f(:); y1_0, 0; y2y1_0, 0];
labels = cellstr([num2str(XY(:,1)),repmat(', ',size(XY,1),1),num2str(XY(:,2))]);
text(XY(:,1), XY(:,2), labels);
legend(h, {'y1(x)', 'y2(y1(x))', 'y1(x) = 0', 'y2(y1(x)) = 0'}, 'location', 'southwest');
T
il 25 Gen 2016
Afshin Aghayan
il 8 Ott 2019
0 voti
you can use this code for displaying any data in the form of [x, y, f(x,y)] or data with coordinate
Categorie
Scopri di più su Graphics Performance in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!