Я пробую к тексту цветового кода в легенде. (Так как я пытаюсь отсортировать несколько графиков в различные категории, я не могу только полагаться на цвета линии в легенде.) мне удалось установить цвет текста для всей легенды, но мне не может удаться присвоить его линию за линией. Действительно ли это возможно?
Код до сих пор:
list={'Label 1','Label 2','Label 3'};
leg=legend(list);
set(leg,'Textcolor',[1 0 0])
устанавливает цвет текста для всей легенды как красный. Я хотел бы иметь возможность сделать некоторый красный, и некоторый черный цвет цвет. Я пытался назначить цветовую гамму матрицей n x 3, но MATLAB не нравится так очень. Я также ввел по абсолютному адресу вокруг использования свойств легенды get(leg)
, но я не мог найти ничто больше, что казалось полезным. Какие-либо предложения?
Вот код:
legtxt=findobj(leg,'type','text');
set(legtxt(1),'color','k')
Просто выясните, какие легенды соответствуют какому индексу.
Чтобы изменить цвета текста легенды по отдельности, необходимо сначала достать хэндлы к текстовым объектам, которые являются дочерними по отношению к объекту легенды. Затем можно изменить их цвета текста по отдельности. Вот пример того, как это можно сделать:
plot(1:10, rand(1, 10), 'r'); % Plot a random line in red
hold on;
plot(1:10, rand(1, 10), 'b'); % Plot a random line in blue
hLegend = legend('a', 'b'); % Create the legend
hKids = get(hLegend, 'Children'); % Get the legend children
hText = hKids(strcmp(get(hKids, 'Type'), 'text')); % Select the legend children
% of type 'text'
set(hText, {'Color'}, {'b'; 'r'}); % Set the colors
Обратите внимание, что порядок цветов в последней строке - синий , затем красный, в обратном порядке передачи меток в функцию legend
. Выше приведен следующий график:
Хотя ответы yuk и gnovice верны, я хотел бы указать на малоизвестный и все же полностью задокументированный факт, что легенда функция возвращает дополнительные дескрипторы, соответствующие компонентам легенды. Из документации функции legend :
[legend_h, object_h, plot_h, text_strings] = legend ( ...) возвращает
- legend_h - дескриптор осей легенды
- object_h - дескрипторы линейных, патч и текстовых графических объектов, используемых в легенде
- plot_h - дескрипторы линий и других объектов, используемых в plot
- text_strings - Массив ячеек текстовых строк, используемых в легенде
Эти дескрипторы позволяют изменять свойства соответствующих объектов.