аннотация в графике matlab

Я просто задаюсь вопросом, как добавить аннотацию в графике matlab? Вот мой код:

plot(x,y);  
annotation('textarrow',[x, x+0.05],[y,y+0.05],'String','my point','FontSize',14);

Но стрелка показывает на неправильное место. Как я могу зафиксировать его? И какая-либо лучшая идея для аннотирования графика?

Спасибо и всего наилучшего!


Править:

Я просто видел из документа справки:

аннотация ('строка', x, y) создает строку объект аннотации, который расширяется от точки, определенной x (1), y (1) к точке, определенной x (2), y (2), указанный в нормализованных единицах числа.

В моем коде я хотел бы стрелку, указывающую на точку (x, y), который оттянут графиком (), но аннотация интерпретирует значения X и Y как в нормализованных единицах числа. Таким образом, я думаю, именно это вызывает проблему. Как я могу указать корректные координаты к аннотации?

5
задан Tim 8 April 2010 в 21:45
поделиться

1 ответ

Во-первых, вам нужно найти положение осей в нормализованном фигурные единицы. К счастью, по умолчанию они установлены на «нормализованные».

axPos = get(gca,'Position'); %# gca gets the handle to the current axes

axPos равно [xMin, yMin, xExtent, yExtent]

Затем вы получаете пределы, то есть min и max осей.

xMinMax = xlim;
yMinMax = ylim;

Наконец, вы можете вычислить аннотации x и y из графика x и y.

xAnnotation = axPos(1) + ((xPlot - xMinMax(1))/(xMinMax(2)-xMinMax(1))) * axPos(3);
yAnnotation = axPos(2) + ((yPlot - yMinMax(1))/(yMinMax(2)-yMinMax(1))) * axPos(4);

Используйте xAnnotation и yAnnotation как координаты x и y для аннотации.

8
ответ дан 18 December 2019 в 11:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: