ShowText for 2d plot or Converting plot to contour
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
In order to take advantage of contour capability of "ShowText", I want to convert my 2d plot into a contour and then show a value on the curve. Anyone can help on converting 2d plot to contour or any better suggestion to show a specific value on the curve nicely like following?

1 comentario
Walter Roberson
el 24 de En. de 2019
ShowText appears to refer to https://www.mathworks.com/help/matlab/ref/contour.html#f19-795863_sep_shared-ShowText
What is the input to this? Is it an axes that has some lines drawn on it, and the task requires extracting data from the lines and somehow building a matrix suitable for use with contour()?
Respuestas (3)
Babak Ravaji
el 24 de En. de 2019
1 comentario
Walter Roberson
el 24 de En. de 2019
Is the input the data that defines the curves, or is the input the already-drawn curves?
Is there a constant z coordinate associated with each curve?
Is the real question here how to label a curve in the middle of the curve? If so then is the line-gap-label-gap-line required or could it be label just off of the curve?
Babak Ravaji
el 25 de En. de 2019
1 comentario
Walter Roberson
el 25 de En. de 2019
I do not see any MATLAB routine for that purpose, and I do not notice anything in the File Exchange either.
You could write a function for it that chose a location near the midpoint of the curve, and introduced artificial stopping in it, [X(1:n), X_before_gap, nan, X_after_gap, X(n+1:end)] and likewise for Y, and then text() into the gap.
Markus Klemm
el 14 de Mzo. de 2019
Hi,
I just had the same problem and wrote a small, straight forward function, which works for me.
Maybe it can serve someone else as well?
% inp_x: 1xM-vector with x-coordinates
% inp_z: 1xN-vector with z-coordinates (the 'text-Info')
% inp_y: MxN-matrix with datapoints
function c=plotPseudoContour(inp_x,inp_z,inp_y)
x=linspace(min(inp_x),max(inp_x),500);
y=linspace(min(inp_z),max(inp_z),500);
[X,Y]=meshgrid(x,y);
[X_inp,Y_inp]=meshgrid(inp_x,inp_z);
Z=interp2(X_inp,Y_inp,inp_y',X,Y);
c=contour(X,Z,Y,inp_z,'ShowText','on');
0 comentarios
Ver también
Categorías
Más información sobre Contour Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!