用matlab画风玫瑰图

请问怎么样能画出这样的风玫瑰图?
2025-06-23 04:55:48
推荐回答(3个)
回答1:

1、玫瑰图主要用来作角度图,比如风向,先看看它与plot的区别。它是角度的histogram。

2、上面是转化后的角度图,如果给出下面:bb = 0:359; rose(bb);。

3、也可以指定生成的柱状图的数量ff = rose(aa,10,'facecolor','r','edgecolor','g');。

4、箭头图制作,compass:rng(0,'twister');M = randn(20,20);Z = eig(M);figure;compass(Z)。

5、compass主要是方向图的制作,和quiver还是有一些区别:[x,y] = meshgrid(0:0.2:2,0:0.2:2);u = cos(x).*y;v = sin(x).*y;figurequiver(x,y,u,v)。

回答2:

找了一个程序,做出来的效果和你的有差别,不知道是否能接受。

程序见附件,还有一些可选的设置项我没仔细研究,也许设置得当的话,效果能够更接近。

不过,我觉得靠现有程序完全做出你所给图中的效果是不太可能的,需要的话,可以对程序进一步改进,不过要花费不少时间精力,我暂时没时间去改了。

 

产生图示效果的调用实例代码如下:

N = 100;
d = 360 * rand(N,1);
v = 30*rand(N,1);
WindRose(d,v,'anglenorth',0,'angleeast',90,'freqlabelangle',45,'ndirections',16,'legendtype',1,'cmap','winter')
set(gcf,'menubar','figure')
colormap(winter(6))

回答3:

我可以给你写个函数实现此功能,请私信我。
代码比较长,私信给我QQ联系发给你