投稿问答最小化  关闭

万维书刊APP下载

Matlab进阶绘图第5期—风玫瑰图(WindRose)

2023/3/10 9:30:24  阅读:392 发布者:

风玫瑰图(Wind rose diagram)是一种特殊的极坐标堆叠图/统计直方图,其能够直观地表示某个地区一段时期内风向、风速的发生频率。

风玫瑰图在建筑规划、环保、风力发电、消防、石油站设计、海洋气候分析等领域都有重要作用,所以在一些顶级期刊中也能够看到它的身影,比如《Nature》:

由于Matlab中未收录风玫瑰图的绘制函数,因此需要大家自行设法解决。

本文使用WindRose工具(Daniel Pereira. Matlab Central, 2023)进行风玫瑰图的绘制,先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以在公众号后台回复关键词【绘图桶】查看加群方式。

 

1. 数据准备

此部分主要是读取原始数据,并初始化绘图参数。

% 读取数据

load data.mat

D = direction;

S = speed;

 

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的SCI专业配色库:

%% 颜色定义

map = TheColor('sci',2068);

% map = flipud(map);

(点击上图查看TheColor具体功能)

获取方式:公众号(阿昆的科研日常)后台回复 TC

3. 风玫瑰图绘制

利用WindRose’工具,绘制风玫瑰图。

Options = {'anglenorth',0,...

           'angleeast',90,...

           'labels',{'N (0°)','NE (45°)','E (90°)','SE (135°)','S (180°)','SW (225°)','W (270°)','NW (315°)'},...

           'freqlabelangle','auto',...

           'nspeeds',7,...

           'ndirections',18,...

           'lablegend','Wind speeds in m/s',...

           'legendtype',2,...

           'legendvariable','W_s',...

           'min_radius',0.1,...

           'titlestring','Wind Rose Plot',...

           'height',12*50,...

           'width',15*50,...

           'cmap',map};

figureHandle = WindRose(D,S,Options);

其中,Options’为自定义绘图参数集,包括标签、标题、图例、配色、组数等等,可以根据自己的需要进行设置。

绘制完成后,按所需格式、分辨率导出图像:

%% 图片输出

print('test.png','-r300','-dpng');

也可以尝试其它配色:

以上。

转自:“阿昆的科研日常”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com