问题
用于polarhistogram(theta)
绘制包含 0-360 度方位角的数据集时。是否可以为给定的段指定颜色?
例子
例如,在下面的图中,是否可以指定 0 到 90 度(以及 180-270 度)之间的所有条都是红色的?而其余的仍然是蓝色的?
参考资料
我想如果它存在,它会在这里某处,但我无法弄清楚究竟是哪一部分:
https://www.mathworks.com/help/matlab/ref/polaraxes-properties.html
用于polarhistogram(theta)
绘制包含 0-360 度方位角的数据集时。是否可以为给定的段指定颜色?
例如,在下面的图中,是否可以指定 0 到 90 度(以及 180-270 度)之间的所有条都是红色的?而其余的仍然是蓝色的?
我想如果它存在,它会在这里某处,但我无法弄清楚究竟是哪一部分:
https://www.mathworks.com/help/matlab/ref/polaraxes-properties.html
如果您使用rose
,您可以提取直方图的边缘并一一绘制每个条形图。这有点骇人听闻,但它可以工作,看起来很漂亮,并且不需要 Matlab 2016b。
theta = atan2(rand(1e3,1)-0.5,2*(rand(1e3,1)-0.5));
n = 25;
colours = hsv(n);
figure;
rose(theta,n); cla; % Use this to initialise polar axes
[theta,rho] = rose(theta,n); % Get the histogram edges
theta(end+1) = theta(1); % Wrap around for easy interation
rho(end+1) = rho(1);
hold on;
for j = 1:floor(length(theta)/4)
k = @(j) 4*(j-1)+1; % Change of iterator
h = polar(theta(k(j):k(j)+3),rho(k(j):k(j)+3));
set(h,'color',colours(j,:)); % Set the color
[x,y] = pol2cart(theta(k(j):k(j)+3),rho(k(j):k(j)+3));
h = patch(x,y,'');
set(h,'FaceColor',colours(j,:),'FaceAlpha',0.2);
uistack(h,'down');
end
grid on; axis equal;
title('Coloured polar histogram')