2010-08-02 7 views
11

¿Hay alguna manera fácil de eliminar una línea trazada de un conjunto de ejes sin borrar todo lo demás en los ejes? Estoy tratando de implementar una GUI con un cuadro de lista que contiene varios conjuntos de datos. Puedo hacer que la función de devolución de llamada grafique los datos seleccionados, pero no estoy seguro de cómo 'desregularla' cuando deseleccione un conjunto de datos. ¿Algunas ideas?¿Hay alguna forma de eliminar un único gráfico de los ejes existentes?

+3

también te pueden interesar en 'clickableLegend' en FEX: http://www.mathworks.com/matlabcentral/fileexchange/21799-clickablelegend – Amro

+0

@Amro: Excelente sugerencia! Gracias por traer esto a mi atención. – Doresoom

Respuesta

17

Si guarda un identificador para el objeto gráfico creado, puede llamar DELETE en él para sacarlo de la trama:

hLine = plot(...); %# Create a line with PLOT 
delete(hLine);  %# ...and delete it 

alternativa, si no ha guardado el mango en una variable, puede buscarlo usando FINDOBJ, luego bórrelo cuando lo encuentre.

Si en realidad no desea eliminar , pero basta con girar la visibilidad de la línea de encendido y apagado, se puede establecer el 'Visible' property del objeto Graphics en consecuencia:

set(hLine,'Visible','off'); %# Make it invisible 
set(hLine,'Visible','on'); %# Make it visible 
+0

Juro que probé esto, pero no funcionó y ahora sí. – Doresoom

+0

Ah, estaba usando 'delete plothandle' not' delete (plothandle) ' – Doresoom

+1

@Doresoom: Eso lo explica. La sintaxis del comando 'delete plothandle' buscará un * file * named' plothandle' para eliminar. – gnovice

Cuestiones relacionadas