Merge 2D plot with polar plot
3 次查看(过去 30 天)
显示 更早的评论
Hello, I would like to merge two different plots in a single one like a 2D plot with a polar plot like it is shown in the image below. I would apreciate the help.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1590971/image.jpeg)
Thank you for your help.
2 个评论
Mathieu NOE
2024-1-15
hello
it is certainly doable , so what's your issue ?
do you have some data ? code ?
采纳的回答
Jaime Abad Arredondo
2024-1-16
As Mathieu said in the comment, what you want to do is definetly doable. As an example:
theta=linspace(0,2*pi,200);
r=3.*cos(2.*theta).^2; %Random made up function.
figure(1)
clf
hold all
p=plot(r.*cos(theta),r.*sin(theta),'r');
%polar(theta,r,'b') %You can generate the polar plots as you wish.
N=50;
x_aux=linspace(-3,3,N);
Z=peaks(N); %Use built-in peaks function as example
surf(x_aux,x_aux,peaks(N))
shading interp
As you can see, the only caveat when mixing 2d and 3d elements in matlab is that the 2d elements are usually drawn at z==0, and therefore the surface plot is overlaid on top of the polar plots. In order to fix this, you have to modify the z-data of the polar plot:
figure(2)
clf
hold all
p=plot(r.*cos(theta),r.*sin(theta),'r');
%polar(theta,r,'b') %You can generate the poar plots as you wish.
N=50;
x_aux=linspace(-3,3,N);
Z=peaks(N);
surf(x_aux,x_aux,peaks(N))
shading interp
%Setting the z-component of the polar plot to be the
% maximum value of the surface plot, so that it appears on top
p.ZData=ones(size(p.XData)).*max(Z(:));
0 个评论
更多回答(1 个)
Jorge Luis
2024-1-16
2 个评论
Jaime Abad Arredondo
2024-1-16
Then it is just a matter of using a hold command to have the two plots together. Importing the data, going from polar to cartesian coordinates and plotting everything together you should get the desired plot...
data_cart=readmatrix('plot1.txt');
data_pol=readmatrix('plot2.txt');
plot(data_cart(:,1),data_cart(:,2),'b')
hold all
plot(data_pol(:,2).*cosd(data_pol(:,1)),data_pol(:,2).*sind(data_pol(:,1)),'r')
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polar Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!