Как добавить элементы легенды в Matlab в сам сюжет

Я хочу как-то обозначить вертикальные линии в Matlab. Я мог бы представить два варианта: либо располагать записи легенды непосредственно рядом с каждой вертикальной линией, либо располагать вертикальные линии на графике с нумерацией, а затем повторять номера в легенде. Возможно ли это?

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

х - вектор чисел даты, а у - данные о цене. Date1 и Date2 являются датами, которые являются элементом x.

plot(x,y), grid on;
dateaxis('x',17);
line([Date1 Date1], ylim); % I would like to have a legend entry for this right at the line in the graph
line([Date2 Date2], ylim); % I would like to have a legend entry for this right at the line in the graph
legend('Price');

1 ответ

Решение

Я думаю, что вы, вероятно, хотите использовать text объекты вместо легенды. Вот пример (обратите внимание, что я должен был использовать datetick вместо dateaxis потому что у меня нет Финансового Инструмента):

% Some sample data:
x = datenum(now():(now()+days(6)));
y = 1:7;

% Plot data:
plot(x, y);
grid on;
datetick('x');

% Make horizontal red lines:
line([x(1) x(1)], ylim, 'Color', 'r');
line([x(end) x(end)], ylim, 'Color', 'r');

% Add text:
text(x(1), mean(ylim), ' left');
text(x(end), mean(ylim), 'right ', 'HorizontalAlignment', 'right');

И полученный сюжет:

Другие вопросы по тегам