Можем ли мы добавить легенду для функции «текст» в Matlab? - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу добавить легенду для своего сюжета.Поскольку я хочу использовать маркерный сюжет «сердечный костюм», я использую функцию «текст».Если я добавлю функцию легенды в мой код, она не сможет работать.В командном окне говорится: «Предупреждение: участок пуст».Итак, можем ли мы добавить легенду в функцию «текст»?Я искал во многих источниках, и я не могу найти его.

clear all;
clc;
m = '\heartsuit';
x = 0:pi/5:2*pi;
y = sin(x);    
text(x,y,m,'fontname','Arial','color','red','FontSize',18,'HorizontalAlignment','center','VerticalAlignment','middle');
grid on;
xlim([min(x) max(x)])    
ylim([min(y) max(y)])
legend('Solusi Numerik');

1 Ответ

4 голосов
/ 17 апреля 2019

Вот хак. Нанесите фальшивую точку NaN, создайте для нее легенду, скройте ее линию легенды и добавьте сердечный костюм в строку с соответствующим пространством в соответствующей позиции. При необходимости измените цвет сердечного костюма и / или нити.

hold on;
LgdStr = 'Solusi Numerik';        %Your legend string
hNaN = plot(NaN,NaN);             %Plotting nothing
[~, icons] = legend(hNaN, LgdStr);%Creating a legend to get required space for string
icons(2).Visible = 'off';         %Hiding the fake legend line
icons(1).Position(1) = 0.125;     %Adjusting the starting position of text
icons(1).String = ['\color{red}', m, '   \color{black}',LgdStr];
%Last line includes red-colored heart-suit at reasonable space from black-colored text 

Результат:

image

...