Как масштабировать амплитуду полярного графика? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть матрица данных. Я использовал команду polarplot в MATLAB для построения этой матрицы относительно тета.

Данные колеблются между 3999,20 и 4001,52. Как видно на следующем графике, порядок величины колебания данных слишком мало, чтобы увидеть.

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

Мой код такой, как показано ниже:

yf=[%750 data point]
theta = 0:4*pi/749:4*pi;
rho = yf
pax = polaraxes;
polarplot(theta,rho)
pax.ThetaDir = 'counterclockwise';
pax.ThetaZeroLocation='right'
pax.ThetaColor='r'
pax.ThetaTick=[0 30 60 90 120 150 180 210 240 270 300 330 ];
pax.RDir='normal';
pax.RTick=[3999.34 3999.67 4000 4000.33 4000.66 4000.99 4001.33 ]
pax.FontSize = 12;

Желаемый вывод:

expected plot

Фактический выход

unwanted result.

2-осевой график

picture of simple plot of  the matrix of data

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

В качестве примера установки пределов r , как предложено @ beaker

В следующем коде используются те же данные с использованием rlim для установки ручных пределов во втором примере. Это масштабирует полярную ось, так что она отображает значения только между [3999,4000], преувеличивая масштаб колебаний.

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta) + 3999 %To approximate your data

figure;
subplot(1,2,1)
polarplot(theta,rho)
title('Automatic r-limits')

subplot(1,2,2)
polarplot(theta,rho)
rlim([3999, 4000])
title('rlim([3999, 4000])')

Figure comparing r limits

0 голосов
/ 19 марта 2020

Может быть, что-то в этом роде, где вы вычитаете среднее значение данных и масштабируете амплитуду с коэффициентом 10?

yf=[%750 data point]
amp = yf - mean(yf);
amp = amp*10; % choose whatever scaling factor works for you
theta = 0:4*pi/749:4*pi;
rho = mean(yf) + amp;

Без реальных данных трудно сказать, как это будет выглядеть, но общий принцип должен работать.

...