Участок розы MATLAB: увеличение радиальных приращений?
Я создаю много угловых гистограмм, используя rose2.m. Мне бы хотелось, чтобы шкала, показывающая количество элементов в каждом бине, составляла от 0 до 50, увеличиваясь с шагом 10, для всех графиков, даже если максимальное количество элементов на конкретном графике меньше 50. Кто-нибудь знает, как Я могу сделать это, пожалуйста? Благодарю.
3 ответа
Этот вопрос такой же, как этот, но вы смотрите на особый случай rose2
,
Я смог зафиксировать максимальное значение до 50 с помощью следующего кода. Сначала я строю пустую точку на 50, затем hold on
чтобы заблокировать сюжет. rose2
затем использует эти границы.
Код:
x = (rand(100,1)*pi);
maxHistogramValue = 50;
figure(44);
clf
% Set the max value to maxHistogramValue:
polar(0, maxHistogramValue,'-k')
hold on;
% Now use rose2:
rose2(x);
Вот еще один пример (основанный на идее @Steve):
%# data and angular histogram
x = rand(400,1) .* 2*pi;
[t,r] = rose(x); %# this does not generate a plot
%# set plot's max radial ticks
figure
rMax = 50;
h = polar(0, rMax);
delete(h)
set(gca, 'Nextplot','add')
%# draw patches instead of lines: polar(t,r)
[x,y] = pol2cart(t,r);
h = patch(reshape(x,4,[]), reshape(y,4,[]), 'b');
alpha(h, 0.5) %# note: this switches to OpenGL renderer
Таким образом, вы можете контролировать максимальный радиус, хотя вы не можете реально контролировать количество шагов (функция POLAR всегда предпочитает около 5 радиальных тиков; см. Исходный код).
Я не совсем понимаю, что такое rose2.m, но я думаю, что вы можете установить свой собственный масштаб / легенду, если у вас есть для этого необходимые данные.
Похоже, у вас есть массив / вектор угла в диапазоне от 0 до 50. Сейчас мы будем называть этот angleArray.
Чтобы получить количество элементов, попадающих в каждую корзину (0-50 на 10 единиц), вы можете использовать следующую строку кода:
binCounts = histc(angleArray, 0:10:50);
binCounts будет 1 на n, где n - длина (0:10:50) и будет иметь количество значений для каждого бина. Эти данные затем могут быть использованы для заполнения вашего масштаба.