2011-10-31 282 views
4

在Matlab中有沒有一種簡單的方法來創建如下所示的可視化效果?Matlab:環形圖

Visualisation

重要的是2的環形形狀和連接的載體,指向黑點的中心(更多或更少)。提示其他可視化工具創建可能導致類似結果的矢量圖像也非常感謝!我所有的努力來解決這個任務沒有給我帶來任何進一步的...

Matlab的將是自動生成這種可視化的一個很好的平臺不同的「地點的場景」 ......

感謝您在提前, M.

+1

我不太明白的身影。你能告訴我更多它代表的是什麼樣的數據嗎? – Jonas

+0

嗨@Jonas,當然!這個數字代表一個所謂的_snapshot_。這個概念由B.A.Cartwright和T.S.Collett創造(例如用於他們的「蜜蜂地標地圖」論文[來源](http://www.springerlink.com/content/j4u57130843r6167/))。外部灰色環表示當前視圖(即軸承對象),內部環形爲目標視圖。整體「環結構」代表蜜蜂,試圖計算一個向量到目標位置。 – Eric

回答

2

下面是該圖的一部分。其餘的應該很容易弄清楚

%# define the ring 
phi = linspace(0,2*pi,360); 
innerRim = [cos(phi)',sin(phi)']; 
outerRim = [cos(phi)',sin(phi)']*1.3; 

xRing = [outerRim(:,1),innerRim(:,1),innerRim([2:end,1],1),outerRim([2:end,1],1)]'; 
yRing = [outerRim(:,2),innerRim(:,2),innerRim([2:end,1],2),outerRim([2:end,2],2)]'; 

%# create some data. 0 for black 0.5 for gray. 
%# RingData has a value for each degree 
ringData = ones(1,360) * 0.5; 
ringData(25:30) = 0; 
ringData(77:80) = 0; 
ringData(240:255) = 0; 

%# plot the ring 
%# for an outer ring, add 1 to xRing, yRing 
figure 
patch(xRing,yRing,ringData,'EdgeColor','none'); 
set(gca,'cLim',[0 1]); 
axis square 
axis off 
set(gcf,'color','w'); 

%# plot three arrows at the origin 
hold on, qh=quiver(zeros(3,1),zeros(3,1),[0.4;0.3;-0.5],[0.7;-0.1;0.3]) 
set(qh,'LineWidth',3) 

enter image description here

+0

非常感謝您的努力,@Jonas! – Eric