Вы строите линию между координатами оси X xt([2 3])
, где xt
обозначает расположение отметок.Это означает, что вы рисуете линию между отметками 2 и 3. Если вы наблюдаете за своим графиком, вы увидите только две отметки.Третий выходит за пределы вправо.Таким образом, расположение линии (и звезды) точно соответствует ожидаемому.
Вместо этого используйте xt([1,2])
, местоположение первых двух отметок.
Причина, по которой у вас три отметкииз-за линии
set(gca, 'Xtick', 1:3);
, которая явно устанавливает отметки в x-координатах 1, 2 и 3. Пределы x для вашей фигуры, вероятно, близки к 0,5 и 2,5, поскольку построены графические блокив целочисленных координатах.Вы можете проверить значение xlim
, которое вы уже используете в коде, чтобы узнать, каковы ограничения.
Я бы пропустил этот шаг, не устанавливая явно места для галочек, они должны быть правильными из get-go.
Кроме того, я бы использовал команду ylim
(или set(gca,'XLim',...)
), чтобы изменить пределы оси Y.