# -- coding: utf-8 --import xlrd import xlrd import matplotlib as mpl import matplotlib.cm as cm from matplotlib import pyplot as plt from windrose import WindroseAxes from numpy.random import random from datetime import datetime mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体 #画风向风速玫瑰图 ws = random(500) * 6 wd = random(500) * 360 def new_axes(): #定义函数 fig = plt.figure(figsize=(8, 8), dpi=80, facecolor='w', edgecolor='w') rect = [0, 0, 1, 1] ax = WindroseAxes(fig, rect, axisbg='w') fig.add_axes(ax) return ax #...and adjust the legend box #标签图例 def set_legend(ax): l = ax.legend(shadow=False, bbox_to_anchor=[1, 0]) plt.setp(l.get_texts(), fontsize=12) #读取数据 #for sn in range(2): #2个sheet中都有数据,一次绘制多个风玫瑰图 #workspace=(r"……工作空间") mybook=xlrd.open_workbook(r'fxfs.xlsx')#打开文件 mysheet=mybook.sheet_by_index(0) rows=mysheet.nrows ws=mysheet.col_values(5) #风向 wd=mysheet.col_values(6) #风速 ws.pop(0) ws.pop(0) wd.pop(0) wd.pop(0) sl=[0,0.2,1.5,3.3,5.4,7.9] #风速重分类间断点 ax=new_axes() #ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white') ax.contourf(wd,ws,bins=sl,normed=True,cmap=cm.cool) #使用matplotlib内置colormap进行色彩分割 ax.set_title(mysheet.name,fontsize=15,loc='right') set_legend(ax) plt.show()
错误如图
相关分类