【发布时间】:2012-01-26 08:58:42
【问题描述】:
我有一个脚本可以根据另一个脚本生成的 x-y 数据(离散数据点,不连续)创建散点图(使用 gscatter)。由于这些数据点实际上是某些对象在圆形空间中的位置,因此添加极坐标网格线会使绘图更有意义。
有谁知道如何在笛卡尔散点图上显示极坐标网格线,还是我最好使用极坐标图?
【问题讨论】:
标签: matlab
我有一个脚本可以根据另一个脚本生成的 x-y 数据(离散数据点,不连续)创建散点图(使用 gscatter)。由于这些数据点实际上是某些对象在圆形空间中的位置,因此添加极坐标网格线会使绘图更有意义。
有谁知道如何在笛卡尔散点图上显示极坐标网格线,还是我最好使用极坐标图?
【问题讨论】:
标签: matlab
我曾经制作过这个脚本,用于在常规绘图上绘制极坐标系。也许它对你有用。它基于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
%------------------
【讨论】:
您始终可以使用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
【讨论】: