Я просто задаюсь вопросом, как добавить аннотацию в графике 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 как в нормализованных единицах числа. Таким образом, я думаю, именно это вызывает проблему. Как я могу указать корректные координаты к аннотации?
Во-первых, вам нужно найти положение осей в нормализованном фигурные единицы. К счастью, по умолчанию они установлены на «нормализованные».
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 для аннотации.