iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何利用Python matplotlib绘制风能玫瑰图
  • 886
分享到

如何利用Python matplotlib绘制风能玫瑰图

2023-06-14 08:06:26 886人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍如何利用python matplotlib绘制风能玫瑰图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很

这篇文章主要介绍如何利用python matplotlib绘制风能玫瑰图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

概述

在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很多,但是最基础和底层的,本人认为还是matplotlib,有时候为了画1-2个图就去安装一个包,好麻烦,我就是个安装软件的渣渣,所以,推己及人,我也研究了一下,matplotlib画玫瑰图的方法,废话不多说,开始咯~~~

风能玫瑰图

玫瑰图是气象科学专业统计图表,用来统计某个地区一段时期内风向、风速发生频率,又分为“风向玫瑰图”和“风速玫瑰图”。本文中的玫瑰图是将风速和风向结合在一起,画出的风能玫瑰图。

读取数据

读取对应的测风数据,并进行数据的基本计算,在matplotlib中画图中没有集成的计算包,所以一定要充分了解绘制玫瑰图的原理,将数据通过计算来处理成绘图需要的形式,再进行调用绘图。

**1、读取数据,**并提取出绘图的风速风向数据,此时的数据是原始风速风向数据。

import pandas as pdimport matplotlib.pyplot as pltimport numpy as npimport matplotlib as mplplt.rcParams['font.sans-serif']=['SimHei'] #显示中文plt.rcParams['axes.unicode_minus']=False #显示负号filename=r'E:\Python总结\实例数据\matplotlib画玫瑰图\Sta_WLS7-4880-0420-0728.xlsx'datat=pd.read_excel(filename,sheet_name='原始数据')datat.columns# 提取绘图的风速风向数据,并进行简单的删除空值处理dt=datat.loc[:,('90m Wind Speed (m/s)','90m Wind Direction (�)')] #提取90m高度的风速和风向dt=dt.dropna() #删除空值

如何利用Python matplotlib绘制风能玫瑰图

2、进行绘图前的数据计算。

mx=np.ceil(max(dt['90m Wind Speed (m/s)'])) #风速最大值向上取整ct0=np.array(np.arange(0,361,22.5)) #划分风向的区间,22.5度一个区间ct1=np.array(np.arange(0,mx+2,2)) #划分风速的区间,2米一个区间#将风速和风向进行区间划分dt['wd']=pd.cut(dt['90m Wind Direction (�)'],ct0) dt['ws']=pd.cut(dt['90m Wind Speed (m/s)'],ct1) #计算各区间段数据量,输出结果为层次化索引序列count=dt['90m Wind Speed (m/s)'].groupby([dt['ws'],dt['wd']]).count() data=count.unstack() #将层次化索引转化为表格

如何利用Python matplotlib绘制风能玫瑰图

如何利用Python matplotlib绘制风能玫瑰图

3、绘制玫瑰图与颜色条。

根据上面计算的数据data来进行绘图。

n=16 #绘制的扇区的个数,与上面角度的区间划分一致的theta=np.linspace(0,2*np.pi,n,endpoint=False) #获取16个方向的角度值width=np.pi*1.5/n #设置扇形的宽度#设置角度对应的标签labels=list(['N','','45','','E','','135','','S','','225','','W','','315',''])fig=plt.figure() #新建画布ax=fig.add_axes([0.1,0.1,0.7,0.7],projection='polar') #在画布添加一个极坐标图,即玫瑰图ax1=fig.add_axes([0.8,0.1,0.03,0.7]) #在画布里面添加颜色条,分别对应左,下,宽,高#根据划分的风速段个数来进行颜色配置colors=['blue','orange','forestgreen','tomato','violet','red','m','yellow','gray'] cmap=mpl.colors.ListedColORMap(colors)norm=mpl.colors.BoundaryNorm(ct1,cmap.N)for i in range(0,len(data.index)): idx=data.index[i] rad=data.loc[idx] #画玫瑰柱状图,由此类推,可以画雷达图,气泡图等等,只要将bar改成对应的图就可以 ax.bar(theta,rad,width=width,bottom=100,label=idx,tick_label=labels,color=colors[i])  ax.set_theta_zero_location('N') #设置0度正北方向ax.set_theta_direction(-1) #设置顺时针方向绘图ax.set_title('风玫瑰图',fontsize=16)ax.tick_params(labelsize=15) ax.set_yticks([200,500,1000,1500]) #默认的y轴出现的频数,也可设置为空cb=mpl.colorbar.ColorbarBase(ax1,cmap=cmap,norm=norm) #设置颜色条cb.ax.tick_params(labelsize=14) #设置颜色条字体和大小

得到风玫瑰柱状图如下:

如何利用Python matplotlib绘制风能玫瑰图

将里面:

ax.bar(theta,rad,width=width,bottom=100,label=idx,tick_label=labels,color=colors[i])

替换成:

ax.fill(theta,rad,alpha=0.5,color=colors[i])

得到风能面积图,不过由于本次数据覆盖严重,比较丑:

如何利用Python matplotlib绘制风能玫瑰图

简单的风向玫瑰图

在实际运用中,有时候并不需要很复杂的玫瑰图,简单的表示各风向上的风速出现频次就可以了,因此,可以画简单的风向玫瑰图。

data_0=dt['90m Wind Speed (m/s)'].groupby(dt['wd']).count() #计算每一个风向段的风速频次ax=plt.subplot(111,projection='polar') #建立极坐标系bars=ax.bar(theta,data_0,width=width,bottom=0.0)#为每个柱子配颜色,有两种方法,一种是一个柱子设置一个颜色,根据柱子的个数设置颜色的个数#另一种是用连续色彩的映射,第二种方法需要将画图数据归一化到0-1之间mm=max(data_0)for r,bar in zip(data_0,bars): bar.set_facecolor(plt.cm.viridis(r/mm)) #设置数值映射的颜色 bar.set_alpha(0.8) #设置颜色透明度 ax.set_theta_zero_location('N') #设置0度正北方向ax.set_theta_direction(-1) #设置顺时针方向绘图ax.set_title('风向玫瑰图',fontsize=16)ax.tick_params(labelsize=13) ax.set_yticks([500,1000,2000,4000]) #默认的y轴出现的频数,也可设置为空

得到如下图:

如何利用Python matplotlib绘制风能玫瑰图

由于风向数据的特征很明显,即主要风向明确,所以图画出来不太好看。

以上是“如何利用Python matplotlib绘制风能玫瑰图”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网Python频道!

--结束END--

本文标题: 如何利用Python matplotlib绘制风能玫瑰图

本文链接: https://www.lsjlt.com/news/269216.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用Python matplotlib绘制风能玫瑰图
    概述 在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很多,但是最基础和底层的,本人认为还是matplotlib,有时候为了画1-2个图...
    99+
    2022-11-11
  • 如何利用Python matplotlib绘制风能玫瑰图
    这篇文章主要介绍如何利用Python matplotlib绘制风能玫瑰图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述在之前的风资源分析文章中,有提到过用widrose包来进行玫瑰图的绘制,目前的可视化绘图包有很...
    99+
    2023-06-14
  • 利用Python绘制多种风玫瑰图
    目录前言导入模块读取数据计算风速的u、v分量uv风速散点图(含透明度)风玫瑰图(多种形式)绘制特定月份风玫瑰图绘制风速频率直方图在地图上绘制风玫瑰图前言 风玫瑰是由气象学家用于给出如...
    99+
    2022-11-11
  • 利用Python绘制好看的玫瑰花图
    目录一、基本极坐标图二、极半径图参数介绍三、画玫瑰花图AngleAxisOpts参数介绍:TooltipOpts参数介绍:开始画玫瑰花图今天主要给大家介绍如何用pyecharts画各...
    99+
    2022-11-11
  • 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)
    活动地址:CSDN21天学习挑战赛 用代码写出浪漫合集(爱心、玫瑰花)       本文目录: ​一、前言 二、用python、matplotlib、Matlab、java绘制爱心 (1)爱心图形1(弧线型)(显示的文字写在代码里) ...
    99+
    2023-10-07
    python 开发语言 经验分享
  • 使用ECharts和Python接口绘制玫瑰图的步骤
    使用ECharts和Python接口绘制玫瑰图的步骤,需要具体代码示例玫瑰图是一种直观展示数据分布的图表类型,在数据可视化中有着广泛的应用。本文将介绍如何使用ECharts和Python接口绘制玫瑰图,并给出相应的代码示例。步骤一:安装和导...
    99+
    2023-12-18
    echarts Python接口 玫瑰图绘制
  • Python利用matplotlib绘制直方图
    目录1. 直方图概述 1.1什么是直方图? 1.2直方图使用场景 1.3直方图绘制步骤 1.4案例展示2. 直方图属性 2.1设置颜色 2.2设置长条形数目 2.3设置透明度 2.4...
    99+
    2022-11-12
  • Python利用matplotlib实现饼图绘制
    目录前言1. 等高线图概述什么是饼图?饼图常用场景绘制等饼图步骤案例展示2. 饼图属性设置饼图的颜色设置标签设置突出部分设置填入百分比数值饼图旋转设置阴影3. 调整饼图的大小4. 添...
    99+
    2022-11-12
  • Python利用Matplotlib绘制图表详解
    目录前言折线图绘制与显示绘制数学函数图像散点图绘制绘制柱状图绘制直方图饼图前言 Matplotlib 是 Python 中类似 MATLAB 的绘图工具,如果您熟悉 MATLAB,那...
    99+
    2022-11-13
  • 使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码
    绘制樱花的代码:```pythonimport turtle# 设置画布大小turtle.setup(800, 600)# 画樱花的...
    99+
    2023-09-16
    python
  • 如何使用Python matplotlib绘制xkcd动漫风格的图表
    这篇文章主要介绍如何使用Python matplotlib绘制xkcd动漫风格的图表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!XKCDxkcd是兰道尔·门罗(Randall Mun...
    99+
    2023-06-29
  • 如何利用python库matplotlib绘制不同的图表
    这篇文章主要介绍如何利用python库matplotlib绘制不同的图表,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、绘制简单曲线图思路:通过3个坐标点,绘制曲线import matplotlib.py...
    99+
    2023-06-29
  • 利用python库matplotlib绘制不同的图表
    目录1、绘制简单曲线图2、绘制单条曲线图3、绘制多条曲线4、绘制直方图5、绘制散点图1、绘制简单曲线图 思路:通过3个坐标点,绘制曲线 import matplotlib.pyplo...
    99+
    2022-11-13
  • Python利用Matplotlib库实现绘制饼形图
    目录1.plt.pie()2. 饼图基本3. 饼状图进阶4. 环形图5. 内嵌环形图1.plt.pie() 饼图 常常用来显示 整体中各部分所占的比例,在python-matplot...
    99+
    2022-11-10
  • 使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实现
    以下是使用Python的turtle库绘制樱花、玫瑰和圣诞树的代码实现。樱花:```pythonimport turtledef d...
    99+
    2023-09-17
    python
  • Python Matplotlib如何绘制多子图
    这篇文章将为大家详细讲解有关Python Matplotlib如何绘制多子图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过获取子图的label和线型来合并图例注意添加label#导入数据(读...
    99+
    2023-06-29
  • Python+matplotlib如何绘制堆叠图
    这篇文章主要介绍Python+matplotlib如何绘制堆叠图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、水平堆叠图堆叠图其实就是柱状图的一种特殊形式from matplotlib imp...
    99+
    2023-06-29
  • Python如何绘制Matplotlib散点图
    本篇内容主要讲解“Python如何绘制Matplotlib散点图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何绘制Matplotlib散点图”吧!使用plt.plot方法:在上篇...
    99+
    2023-06-30
  • Python如何绘制Matplotlib折线图
    本篇内容介绍了“Python如何绘制Matplotlib折线图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Matplotlib 绘图在...
    99+
    2023-06-30
  • 用Python的绘图库(matplotlib)绘制小波能量谱
    时间小波能量谱 反映信号的小波能量沿时间轴的分布。 由于小波变换具有等距效应,所以有: 式中 表示信号强度,对于式①在平移因子b方向上进行加权积分 式中 代表时间...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作