2010-11-10 21 views
40

Tengo dos vectores que representan la ubicación de los puntos (x, y) que me gustaría trazar.Etiquetar puntos en orden en un diagrama

Sé cómo trazarlos, pero también me gustaría etiquetarlos 1, 2, 3, 4 ... con etiquetas visibles en la trama. Las etiquetas representan su orden en el vector.

Respuesta

67

Aquí hay una manera de hacer esto:

p = rand(10,2); 
labels = cellstr(num2str([1:10]')); %' # labels correspond to their order 

plot(p(:,1), p(:,2), 'rx') 
text(p(:,1), p(:,2), labels, 'VerticalAlignment','bottom', ... 
          'HorizontalAlignment','right') 

alt text

+3

Me parece que es útil añadir ' 'Padres', axesHandle' como opción adicional a' Text', especialmente si usted está trazado desde dentro de una función, para asegurarse de que el texto realmente aparece en la figura correcta. – Jonas

+0

Hola, ¿cómo harías eso con "set"? 'h = texto (p (:, 1), p (:, 2), etiquetas); conjunto (h, 'Posición', [p (:, 1) p (:, 2)], 'Cadena', etiquetas); 'No funciona. – k4lls

+0

@ k4lls: Eso es porque 'h' es una matriz de gráficos de control (cada" etiqueta "creada es una instancia separada de' texto'). O bien establece cada 'h (i)' en un bucle, o utiliza la sintaxis especial: 'set (h, {'Position'}, num2cell (p, 2), {'String'}, labels)'. Obtenga más información al respecto en los documentos: http://www.mathworks.com/help/matlab/ref/set.html#f67-575595 – Amro

Cuestiones relacionadas