2

如何在matlab中的一个图中绘制多个极坐标图?

polar(polar_mat,dir_mat)      
hold all;      
polar(polar_mat,dir_mat_b,'r')  

上面的代码只绘制了第二个图。

4

1 回答 1

1

这是一种在单个图中绘制多个极坐标图的方法。我曾经subplot举例说明不同的例子。我们可以看到,对于极坐标图(见子图,右上角) ,它hold on/all并没有像预期的那样工作。您的问题可能与此有关。一种解决方法是先绘制最大的极坐标图,然后再绘制最小的极坐标图。

(子图 1)plot在一个轴上连续绘制两条线( ),hold all当绘制第二条线时,==> 自动调整轴的大小

(子图 2)在 绘制第二个图时,连续绘制两个polar不会触发自动调整大小。我们只看到了一条蓝线0

(子图 3)它单独绘制第二个polar图(蓝色)。这是我们应该看到的。

(子图 4)将两张polar图放在一起,首先绘制第二张图(蓝色)。轴的属性用蓝色图(最大)设置,红色图(最小)在其上绘制。

我仍然不明白您的问题是它“仅绘制第二个情节”。根据这里描述的场景,它应该是“只绘制第一个,部分绘制第二个”。最后,正如评论中所读到的,hold on/all包括我在内的许多用户都可以正常工作 - 因此可能是您的 matlab 安装中的错误。

这是地块

在此处输入图像描述

和代码

figure('Color','w','Position',[10 10 600 600]);  

subplot(2,2,1);  
plot((1:10)+1000,'r');  
hold all;  
plot((1:100).^2,'b');  
legend({'first axes';'second axes'});  
title('axes resized with hold all','FontSize',14);  

subplot(2,2,2);  
t = 0:.01:2*pi;  
polar(t,sin(2*t).*cos(2*t),'r')  
hold all  
polar(t,t.^0.1,'b')  
title('axes NOT resized with hold all','FontSize',14);  

subplot(2,2,3);  
polar(t,t.^0.1,'b')  
title('what blue should be','FontSize',14);  

subplot(2,2,4);  
h2 = polar(t,t.^0.1,'b')  
hold all;  
h1 = polar(t,sin(2*t).*cos(2*t),'r')  
title('plot bigger first','FontSize',14);  
于 2013-09-03T10:30:58.070 回答