Нарисуйте вектор (или дугу) на графике розы. MATLAB

У меня есть два набора данных. Один подробный список angles (который я строю на розовом участке):

angles
-0.8481065519
0.0367932161
2.6273740453
...
n

Другой, детализирующий статистику направления из этой группы углов:

angle,error
-0.848106563,0.8452778824

куда angle по существу определяет среднее направление, и error круговая дисперсия, по существу, погрешность по обе стороны от angle

Пока что я построил гистограмму розы, используя набор углов, как таковой:

h = rose(angles,36)

Я хотел бы создать график статистики по направлениям. angle (ему не нужна длина / величина - только до границы круга) с error вокруг него. В качестве примера:

Пример того, что я хочу сделать

Я добавил строки вручную в Matlab. Если возможно, было бы хорошо, чтобы, возможно, также было затенение внутри дуги. В качестве альтернативы (и, возможно, предпочтительнее) было бы иметь полоску над корзинами роз (так, чтобы она не покрывала данные) с центральной линией (показывающей angle и затенение окружающих для error,

Заранее спасибо.

1 ответ

Решение

Как насчет этого?

%// Data
angles = 2*pi*.8*randn(1,1e4);
angle = -0.848106563;
error = 0.8452778824;

%// Plot rose
rose(angles, 36);
axis image %// make axis square
hold on

%// Plot mean
a = axis;
a = a(2); %// size of axis
plot([0 cos(angle)*a], [0 sin(angle)*a], 'r')

%// Plot error as many shaded triangles that compose a circular wedge
t = linspace(-error/2+angle,error/2+angle,100); %// increase "100" if needed
for k = 1:numel(t)-1
    h = patch([0 cos(t(k))*a cos(t(k+1))*a 0], ...
        [0 sin(t(k))*a sin(t(k+1))*a 0], [.5 0 0], 'edgecolor', 'none');
        %// change color [.5 0 0] to something else if desired. Note also alpha
    set(h,'Facealpha',.3) %// make transparent
end     

%// Place rose on top by rearranging order of axis children
ch = get(gca,'children');
set(gca,'children',[ch(2:end); ch(1)]);

Чтобы это работало, вам нужно использовать средство визуализации фигур, способное к прозрачности. Таким образом, вам может понадобиться скорректировать фигуру renderer имущество.

Другие вопросы по тегам