好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 利用Python matplotlib繪制風能玫瑰圖

利用Python matplotlib繪制風能玫瑰圖

熱門標簽:在哪里辦理400電話號碼 江蘇客服外呼系統(tǒng)廠家 千陽自動外呼系統(tǒng) 原裝電話機器人 西藏智能外呼系統(tǒng)五星服務(wù) 工廠智能電話機器人 平頂山外呼系統(tǒng)免費 清遠360地圖標注方法 400電話申請服務(wù)商選什么

概述

在之前的風資源分析文章中,有提到過用widrose包來進行玫瑰圖的繪制,目前的可視化繪圖包有很多,但是最基礎(chǔ)和底層的,本人認為還是matplotlib,有時候為了畫1-2個圖就去安裝一個包,好麻煩,我就是個安裝軟件的渣渣,所以,推己及人,我也研究了一下,matplotlib畫玫瑰圖的方法,廢話不多說,開始咯~~~

風能玫瑰圖

玫瑰圖是氣象科學專業(yè)統(tǒng)計圖表,用來統(tǒng)計某個地區(qū)一段時期內(nèi)風向、風速發(fā)生頻率,又分為“風向玫瑰圖”和“風速玫瑰圖”。本文中的玫瑰圖是將風速和風向結(jié)合在一起,畫出的風能玫瑰圖。

讀取數(shù)據(jù)

讀取對應(yīng)的測風數(shù)據(jù),并進行數(shù)據(jù)的基本計算,在matplotlib中畫圖中沒有集成的計算包,所以一定要充分了解繪制玫瑰圖的原理,將數(shù)據(jù)通過計算來處理成繪圖需要的形式,再進行調(diào)用繪圖。

**1、讀取數(shù)據(jù),**并提取出繪圖的風速風向數(shù)據(jù),此時的數(shù)據(jù)是原始風速風向數(shù)據(jù)。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl

plt.rcParams['font.sans-serif']=['SimHei'] #顯示中文
plt.rcParams['axes.unicode_minus']=False #顯示負號

filename=r'E:\python總結(jié)\實例數(shù)據(jù)\matplotlib畫玫瑰圖\Sta_WLS7-4880-0420-0728.xlsx'
datat=pd.read_excel(filename,sheet_name='原始數(shù)據(jù)')
datat.columns

# 提取繪圖的風速風向數(shù)據(jù),并進行簡單的刪除空值處理
dt=datat.loc[:,('90m Wind Speed (m/s)','90m Wind Direction (�)')] #提取90m高度的風速和風向
dt=dt.dropna() #刪除空值

2、進行繪圖前的數(shù)據(jù)計算。

mx=np.ceil(max(dt['90m Wind Speed (m/s)'])) #風速最大值向上取整

ct0=np.array(np.arange(0,361,22.5)) #劃分風向的區(qū)間,22.5度一個區(qū)間
ct1=np.array(np.arange(0,mx+2,2)) #劃分風速的區(qū)間,2米一個區(qū)間

#將風速和風向進行區(qū)間劃分
dt['wd']=pd.cut(dt['90m Wind Direction (�)'],ct0) 
dt['ws']=pd.cut(dt['90m Wind Speed (m/s)'],ct1) 

#計算各區(qū)間段數(shù)據(jù)量,輸出結(jié)果為層次化索引序列
count=dt['90m Wind Speed (m/s)'].groupby([dt['ws'],dt['wd']]).count() 
data=count.unstack() #將層次化索引轉(zhuǎn)化為表格

3、繪制玫瑰圖與顏色條。

根據(jù)上面計算的數(shù)據(jù)data來進行繪圖。

n=16 #繪制的扇區(qū)的個數(shù),與上面角度的區(qū)間劃分一致的
theta=np.linspace(0,2*np.pi,n,endpoint=False) #獲取16個方向的角度值
width=np.pi*1.5/n #設(shè)置扇形的寬度
#設(shè)置角度對應(yīng)的標簽
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]) #在畫布里面添加顏色條,分別對應(yīng)左,下,寬,高

#根據(jù)劃分的風速段個數(shù)來進行顏色配置
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改成對應(yīng)的圖就可以
 ax.bar(theta,rad,width=width,bottom=100,label=idx,tick_label=labels,color=colors[i]) 
 
ax.set_theta_zero_location('N') #設(shè)置0度正北方向
ax.set_theta_direction(-1) #設(shè)置順時針方向繪圖
ax.set_title('風玫瑰圖',fontsize=16)
ax.tick_params(labelsize=15) 
ax.set_yticks([200,500,1000,1500]) #默認的y軸出現(xiàn)的頻數(shù),也可設(shè)置為空
cb=mpl.colorbar.ColorbarBase(ax1,cmap=cmap,norm=norm) #設(shè)置顏色條
cb.ax.tick_params(labelsize=14) #設(shè)置顏色條字體和大小

得到風玫瑰柱狀圖如下:

將里面:

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])

得到風能面積圖,不過由于本次數(shù)據(jù)覆蓋嚴重,比較丑:

簡單的風向玫瑰圖

在實際運用中,有時候并不需要很復(fù)雜的玫瑰圖,簡單的表示各風向上的風速出現(xiàn)頻次就可以了,因此,可以畫簡單的風向玫瑰圖。

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)

#為每個柱子配顏色,有兩種方法,一種是一個柱子設(shè)置一個顏色,根據(jù)柱子的個數(shù)設(shè)置顏色的個數(shù)
#另一種是用連續(xù)色彩的映射,第二種方法需要將畫圖數(shù)據(jù)歸一化到0-1之間
mm=max(data_0)
for r,bar in zip(data_0,bars):
 bar.set_facecolor(plt.cm.viridis(r/mm)) #設(shè)置數(shù)值映射的顏色
 bar.set_alpha(0.8) #設(shè)置顏色透明度
 
ax.set_theta_zero_location('N') #設(shè)置0度正北方向
ax.set_theta_direction(-1) #設(shè)置順時針方向繪圖
ax.set_title('風向玫瑰圖',fontsize=16)
ax.tick_params(labelsize=13) 
ax.set_yticks([500,1000,2000,4000]) #默認的y軸出現(xiàn)的頻數(shù),也可設(shè)置為空

得到如下圖:

由于風向數(shù)據(jù)的特征很明顯,即主要風向明確,所以圖畫出來不太好看。

以上為matplotlib畫玫瑰圖的用法,另外還有一些衍生的玫瑰圖,大家可以據(jù)此摸索一下。

總結(jié)

到此這篇關(guān)于利用Python matplotlib繪制風能玫瑰圖的文章就介紹到這了,更多相關(guān)matplotlib繪制風能玫瑰圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python matplotlib實用繪圖技巧匯總
  • python使用matplotlib顯示圖像失真的解決方案
  • 基于python的matplotlib制作雙Y軸圖
  • 用Python的繪圖庫(matplotlib)繪制小波能量譜
  • python matplotlib繪圖實現(xiàn)刪除重復(fù)冗余圖例的操作
  • Python基礎(chǔ)之畫圖神器matplotlib
  • python讀取并顯示圖片的三種方法(opencv、matplotlib、PIL庫)
  • python 如何在 Matplotlib 中繪制垂直線
  • python 繪圖模塊matplotlib的使用簡介
  • python之 matplotlib和pandas繪圖教程
  • python matplotlib工具欄源碼探析二之添加、刪除內(nèi)置工具項的案例
  • Python繪圖庫Matplotlib的基本用法

標簽:西安 安慶 白城 隨州 日照 股票 錦州 天水

巨人網(wǎng)絡(luò)通訊聲明:本文標題《利用Python matplotlib繪制風能玫瑰圖》,本文關(guān)鍵詞  利用,Python,matplotlib,繪制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用Python matplotlib繪制風能玫瑰圖》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用Python matplotlib繪制風能玫瑰圖的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产真人做爰视频免费| 男生的鸡鸡插入女生的鸡鸡| 亚洲精品乱码久久久日本软件介绍| 日韩黄色成人| 主播在线观看| 日韩成人无码| 国产伦精品一区| 一级全黄生活片| 乡下老人公波多野结衣| 中国美女婬乱免费视频| 熟女少妇精品一区二区三区| 羞羞视频全部网站下载| 欧美成人在线观看| 放荡的寡妇a级美国大片| 中国一级毛片免费看| 国产精品视频yy9099| 美女靠比| 西西人体裸体自慰gogo| 午夜福利一区二区三区| 成人午夜亚洲影视在线观看| yellow字幕网在线zmzz91| 欧美在线一二三| 福利一区福利二区微拍刺激| 扒开两腿猛进入爽爽视频| 国内大量揄拍情侣品视频| 黄色小短片| 久久人妻无码AⅤ毛片A片APP| 798艺术课照片大全| 草草草视频在线观看| 黄色福利网| 中日韩特黄A片免费视频| 麻豆 白洁少妇在线播放| 免费看女人的隐私无遮挡| freexxxx性| 班长??我~慢点~好爽好| 你的奶好大让我边揉边做| 性欧美videofree高清动漫3d| 亚洲欧美日韩不卡一区二区三区| 巜丰满的欲妇2在线观看| 91青青青| 亚洲精品国产精品乱码不97|