我有一个代码可以为图例括号定义标签。我的代码有两个问题: 1)我将第一个方括号标记为“ calm”,但是当我打印标签列表时……它并没有显示,而是“ 1-3 kts”。 2)在我的Wind rose图中,使用代码ax.set_legend(labels = spd_labels)在图例中使用我的标签。但是,输出显示默认标签,而不返回错误消息。 现在,我想说的是,我的代码在整个夏天都工作得很好……现在却没有。
下面是我的代码和输出:
'''
def speed_labels(spd_bins,units):
labels = []
for left,right in zip (spd_bins[:-1],spd_bins[1:]):
if left == spd_bins[1:3]:
labels.append('calm'.format(right))
elif np.isinf(right):
labels.append('>{} {}'.format(left,units))
else:
labels.append('{} - {} {}'.format(left,right,units))
print(labels)
return list(labels)
# 2)define our bins and labels for speed and wind:
spd_bins = [1,3,8,12,15,20,25] #,np.inf]
spd_labels = speed_labels(spd_bins,units='kts')+['>25 kts']
index = [1995,1996,1997,1998,1999,2000,2001]
df= []
for ii in index:
df = walney[walney['date'].dt.year.isin([ii,ii+7])]
plt.hist([0,1])
plt.close()
ax=WindroseAxes.from_ax()
ax.grid(linestyle="dashed",color="black",zorder=0)
ax.bar(df['dir'],df['w_speed'],normed=True,opening=1,cmap = cm.magma_r,edgecolor='white',linewidth=0.5,bins=spd_bins,nsector=36,zorder= 3)
ax.set_legend(loc=(-0.12,0.75),labels=spd_labels)
ax.set_yticks(np.arange(1,step=3))
ax.set_yticklabels(np.arange(1,step=3))
ax.set_title(list(range(ii,ii+8)))
plt.show()
标签输出:['1-3 kts','3-8 kts','8-12 kts','12 -15 kts','15 -20 kts','20 -25 kts,' > 25 kts']```
某一时间段内的风玫瑰图: enter image description here