爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 31725|回复: 50

[程序设计] rose函数绘制风玫瑰图示例

  [复制链接]

新浪微博达人勋

发表于 2013-11-10 17:01:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Aires 于 2013-11-11 18:08 编辑

搜了下帖子,还没发现有发Matlab绘制风玫瑰图的程序。小A把一小段程序给大家,但其中还有许多地方需要修改~

数据用@lqouc给小A的青岛2012年1月日平均风向数据。如下:
54857.000    36.070   120.330   340.000     7.000
54857.000    36.070   120.330   220.000     3.000
54857.000    36.070   120.330   340.000     7.000
54857.000    36.070   120.330   340.000     6.000
54857.000    36.070   120.330   250.000     1.000
54857.000    36.070   120.330   340.000     3.000
54857.000    36.070   120.330   340.000     4.000
54857.000    36.070   120.330   340.000     2.000
54857.000    36.070   120.330   360.000     3.000
54857.000    36.070   120.330   340.000     4.000
54857.000    36.070   120.330   320.000     3.000
54857.000    36.070   120.330   200.000     5.000
54857.000    36.070   120.330   340.000     2.000
54857.000    36.070   120.330   340.000     2.000
54857.000    36.070   120.330   160.000     1.000
54857.000    36.070   120.330   340.000     2.000
54857.000    36.070   120.330   290.000     2.000
54857.000    36.070   120.330   290.000     2.000
54857.000    36.070   120.330   340.000     6.000
54857.000    36.070   120.330   340.000     8.000
54857.000    36.070   120.330   340.000    10.000
54857.000    36.070   120.330   340.000     7.000
54857.000    36.070   120.330   360.000     2.000
54857.000    36.070   120.330   290.000     7.000
54857.000    36.070   120.330   290.000     4.000
54857.000    36.070   120.330   180.000     3.000
54857.000    36.070   120.330   340.000     2.000
54857.000    36.070   120.330   110.000     4.000
54857.000    36.070   120.330   270.000     1.000
54857.000    36.070   120.330   290.000     3.000

画风玫瑰图可用Matlab里面自带的玫瑰图函数:rose。但是rose函数采用极坐标,即0度为x轴正半轴,逆时针旋转。而风向的定义是y轴正半轴为0度(北风为0度),顺时针旋转。这里用rose对风向进行统计后,用view函数作旋转。
程序如下:
% 用rose函数画风玫瑰图
% 数据为青岛2012年1月日平均风速、风向,第4列为风向
data=importdata('wind.txt');
dir=data(:,4);
dir=dir*pi/180;
x=0:22.5:337.5;
x=x*pi/180;
h=rose(dir,x);
set(h,'linewidth',2);
view(90,-90);
print -dpng -r300 wind_rose.png

图如下:
wind_rose.png
几点说明:
1.x是为了设置风向的16方位
2.rose中的参数都需要转换为弧度。rose其他用法查看help。
3.view函数通过方位角和仰角确定视角,具体查看help。

rose函数本身默认是这个样子的,想把外围的角度换为16方位的标注,找不到句柄在哪里。知道的希望留个言哈~

评分

参与人数 2金钱 +11 贡献 +6 收起 理由
musudsay + 1 赞一个!
kongfeng0824 + 10 + 6

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-24 09:15:06 | 显示全部楼层
我是菜鸟啊只能学习了
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2013-11-11 16:52:09 | 显示全部楼层
@Aireslz能否将你的实例数据(wind.txt)贴上来。谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-11 18:08:30 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-13 14:24:32 | 显示全部楼层

已收到,多谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-22 10:44:23 | 显示全部楼层
默默的为楼主点个赞……
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-22 10:45:55 | 显示全部楼层
这个好,学习一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-16 14:27:09 | 显示全部楼层
很好,不过感觉这样画还不如直接用execl画好了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-11 22:12:04 | 显示全部楼层
正是需要的~~学习一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-12 08:50:44 | 显示全部楼层
matlab 一直就有风玫瑰图的函数啊。
figure
load sunspot.dat  % Contains a 2-column vector named sunspot
rose(sunspot(:,2),12)
QQ图片20140812084939.jpg
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表