我有一个脚本来创建基于另一个脚本生成的x-y数据(离散数据点,不连续)的散点图(使用gscatter
)。由于这些数据点实际上是圆形空间中某些对象的位置,因此添加极坐标网格线将使图形更有意义。
有没有人知道如何在笛卡尔散点图上显示极坐标网格线,或者我最好使用极坐标图?
答案 0 :(得分: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
答案 1 :(得分: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
%------------------