2016-04-16 2 views
2

У меня есть фигура Matlab, допустим, это MyFigure.fig. Эта цифра имеет 12 кривых с соответствующими надписями. Однако я хочу удалить одну из кривых и ее легенду. Кривую легко удалить (просто выбрав ее с помощью курсора и нажав кнопку «Удалить»), но когда я пытаюсь удалить ее легенду, я могу удалить ее только.Как удалить записи из существующей легенды фигуры?

Я искал это, и я нашел другие способы сделать это. Я нашел полезную информацию по следующей ссылке

http://es.mathworks.com/help/matlab/creating_plots/controlling-legends.html

, но я не могу нести его. Основная проблема, которую я нашел здесь это:

  • Если я пытаюсь сделать это так, у меня нет никаких проблем:

    Example (not my case): 
    x=0:0.01:pi; 
    y=sin(x); H=plot(x,y); 
    hAnnotation = get(H, 'Annotation'); 
    
  • Но, в моем случае, я не должен используйте «сюжет», потому что у меня уже фигура. Так что, когда я открываю его, и я стараюсь, чтобы получить его ручку (по Н = GCF или H = GCA), а затем, я пишу код

    hAnnotation = get(H, 'Annotation'); 
    

У меня есть следующие ошибки:

  1. название «Аннотация» не является доступным свойство для экземпляра класса «фигуры» (в случае ГКМ)
  2. Название «Аннотация» не является доступным свойство для экземпляра класса «оси» (в случае ВКА)

ответ

0

Ну, есть несколько точек в вашем коде, что происходит не так. Пройдя прямо к вашей проблеме, вот что я предлагаю:

Насколько я понимаю, это тот же самый вопрос, который задают и ответил here, НО наоборот: вместо добавления информации, вы хотите удалить записи легенды. На самом деле это приводит к тому же: вы хотите обновить легенду. Таким образом, вы можете использовать тот же метод, как описано в упомянутом вопросе:

Если вы что-то рисуете, используйте параметр «DisplayName». В вашем примере это будет:

plot(x,y, 'DisplayName', 'myNameForThisLineGoesHere'); 
%now, after you added OR removed a line (etc.), you have to update the legend: 
legend('off'); legend('on')