Matlab:绘制圆形并用不同半径的不同颜色填充它们

时间:2014-03-12 09:56:24

标签: matlab geometry heatmap

我有一张地图,希望在其上绘制一条射频传播路径,信号随着距离逐渐消失。我在同一轴坐标上描绘了4个圆圈。这四个圆圈具有不同的颜色和不同的半径。很像目标板。

是否可以通过使用一个圆圈来绘制它们?或者我是否必须重复迭代不同半径的圆圈?

2 个答案:

答案 0 :(得分:0)

可能误用scatter

% set up centre and number of circles
x = 5;
y = 5;
n = 4;
r = 25; % radius multipler

scatter(repmat(x,[n,1]),repmat(y,[n,1]),pi.*((n:-1:1)*r).^2,(1:n),'fill');
colormap jet;

enter image description here

注意: pi.*((n:-1:1)*25).^2:分散大小以点为单位。另外,为了让较小的圆圈覆盖较大的圆圈,使用n:-1:1而不是1:n,以便最大的绘图。

答案 1 :(得分:0)

您可以使用cylinder并设置一个挤压Z尺寸的顶视图。

以下情节

enter image description here

生成
nb_points = 100;
vect_profile = 1:-0.001:0;

[X,Y,Z] = cylinder(vect_profile, nb_points);

figure;
subplot(1,2,1);
h(1) = surf(X,Y,Z);
hold on;
h(2) = surf(X*0.6+2, Y*0.6+1.5, Z); %modify origins and scale of cylinder
h(3) = surf(X*0.2, Y*0.2+2,Z);      

subplot(1,2,2);
h(4) = surf(X,Y,Z);
hold on;
h(5) = surf(X*0.6+2, Y*0.6+1.5, Z);
h(6) = surf(X*0.2, Y*0.2+2,Z);
view(0,90)

set(h, 'EdgeColor', 'None');