Фиксация радиальной оси на полярных участках MATLAB
Я использую полярные графики (POLAR (THETA, RHO)) в MATLAB.
Есть ли простой способ исправить диапазон радиальной оси, например, 1,5?
Я ищу что-то аналогичное командам xlim, ylim для декартовых осей. В документах еще ничего не найдено.
Ответы
Ответ 1
Вот как я смог это сделать.
Полярный график MATLAB (если вы смотрите на доступные опции Handle Graphics) не имеет ничего подобного xlim или ylim. Тем не менее, я понял, что первое, что построено, устанавливает диапазон, поэтому мне удалось построить функцию с радиусом [-.5.5] на графике [-1 1] следующим образом:
theta = linspace(0,2*pi,100);
r = sin(2*theta) .* cos(2*theta);
r_max = 1;
h_fake = polar(theta,r_max*ones(size(theta)));
hold on;
h = polar(theta, r);
set(h_fake, 'Visible', 'Off');
Это выглядит не очень хорошо и, надеюсь, есть лучший способ сделать это, но он работает.
Ответ 2
это сработало для меня... я хотел, чтобы диапазон радиуса находился до 30, поэтому я сначала построил этот
polar(0,30,'-k')
hold on
а затем построил то, что меня действительно интересовало. Эта первая застроенная точка скрыта за метками сетки. просто включите
hold off
после вашей окончательной команды построения.
Ответ 3
Простым решением является создание фальшивого графика и его белый цвет.
fake=100;
polar(0,fake,'w');
hold on;
real=10;
polar(0,real,'w');
Ответ 4
В случае, если кто-то еще сталкивается с этим, вот решение:
Как указано Scottie T и gnovice, Matlab в основном использует полярную функцию в качестве интерфейса для стандартных графиков, но с большим количеством форматирования за кулисами, чтобы заставить его выглядеть полярная. Посмотрите на значения свойств XLim и YLim полярного графика, и вы заметите, что они буквально являются границами x и y вашего графика в декартовых координатах. Итак, чтобы установить ограничение по радиусу, используйте xlim и ylim, или ось, и будьте умны относительно значений, которые вы установили:
rlim = 10;
axis([-1 1 -1 1]*rlim);
... что все есть. Happy Matlabbing:)