2012-01-26 9 views
4

別のスクリプトで作成されたx-yデータ(離散データ点、連続ではない)に基づいて散布図(gscatterを使用)を作成するスクリプトがあります。これらのデータポイントは実際には円形空間内の特定のオブジェクトの位置であるため、極座標グリッド線を追加するとプロットがより意味を持ちます。デカルト散布図の極グリッド線

デカルト散布図に極座標線を表示する方法を知っている人はいますか、または極座標プロットを使用する方がよいですか?

答えて

2

極性格子線を生成するのに常にpol2cart関数を使用できます。たとえば :

function DrawGridLines 
    x = randn(10); 
    y = randn(10); 
    figure;scatter(x(:),y(:)); 
    hold on ; 
    for angle = 0:20:(360-20) 
     [x1,y1] = pol2cart( angle/180 * pi , [0 2]); 
     plot(x1,y1,'r') 
    end 

    for rho = 0:0.1:2 
     [x1,y1] = pol2cart( 0:0.01:2*pi , rho); 
     plot(x1,y1,'b') 
    end 
    axis equal 
end 

enter image description here

+0

(自分の質問に素早く回答) 私は質問を投稿直後、I私の散布図を単位円を示す極座標に重ね合わせることを考えました。 t = 0:.01:2 * pi; 極性(t、ceil(sin(t)) ' - k') 保留中gscatter(xs、ys、gs、 'kkkkkk'、 'o +^s * d'、8、 'on') それは私が望むように働いた。 皆様のご関心をお寄せいただきありがとうございます。 Hurol Aslan –

+0

訂正:sin(0 * t)を使用した空の極座標プロットがうまく機能しました。 –

2

私はかつて、正規プロットの上に極座標を描画するため、このスクリプトを作りました。おそらくそれはあなたのために役立つことがあります。これはthisスクリプトに基づいていますが、座標系とデータは描画されないように単純化されています。これがあなたが探していたものではない場合は、リンクされたスクリプトをチェックしてください。おそらくそれも役立ちます。

必要に応じて半径を調整してください。私は通常の軸を無効にしていますが、別の外観を必要とする場合、それはそれを修正するのはあなた次第です:)

R=6000; %radius 
S=10; %num circ.lines 
N=10; %num ang.lines 

sect_width=2*pi/N;  
offset_angle=0:sect_width:2*pi-sect_width; 

%------------------ 
r=linspace(0,R,S+1); 
w=0:.01:2*pi; 

clf %remove if needed 

hold on 
axis equal 
for n=2:length(r) 

    plot(real(r(n)*exp(j*w)),imag(r(n)*exp(j*w)),'k--') 

end 


for n=1:length(offset_angle) 

    plot(real([0 R]*exp(j*offset_angle(n))),imag([0 R]*exp(j*offset_angle(n))),'k-') 

end 
%------------------ 

Result from script