Фиксация радиальной оси на полярных участках MATLAB
Я использую полярные графики (POLAR(THETA,RHO)) в MATLAB.
Есть ли простой способ установить диапазон радиальной оси, скажем, 1,5?
Я ищу что-то аналогичное командам xlim, ylim для декартовых осей. В документах еще ничего не найдено.
4 ответа
Вот как я смог это сделать.
Полярная диаграмма 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');
Это выглядит не очень хорошо, и, надеюсь, есть лучший способ сделать это, но это работает.
Это сработало для меня... я хотел, чтобы диапазон радиуса пошел до 30, поэтому я сначала построил это
polar(0,30,'-k')
hold on
а затем нанесено на график то, что меня на самом деле заинтересовало. Эта первая нанесенная точка скрыта за метками сетки. просто не забудьте включить
hold off
после вашей последней команды заговора.
Простое решение - создать фальшивый график и установить его цвет на белый.
fake=100;
polar(0,fake,'w');
hold on;
real=10;
polar(0,real,'w');
В случае, если кто-то еще сталкивается с этим, вот решение:
Как указали Скотти Т и gnovice, Matlab в основном использует полярную функцию в качестве интерфейса для стандартных графиков, но с большим количеством закулисного форматирования, чтобы он выглядел полярным. Посмотрите на значения свойств XLim и YLim полярного графика, и вы заметите, что они буквально являются пределами x и y вашего графика в декартовых координатах. Итак, чтобы установить предел радиуса, используйте xlim и ylim или ось, и будьте внимательны с установленными значениями:
rlim = 10;
axis([-1 1 -1 1]*rlim);
... это все, что нужно сделать. Счастливого Matlabbing:)