Wind rose图例未显示定义的标签

2024-07-07 06:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码来定义我的图例括号的标签。我对代码有两个问题: 1) 我将第一个括号标为“冷静”,但当我打印标签列表时。。。它不显示,但作为这样,但作为“1-3 kts”。 2) 在Wind rose plot using中,我使用代码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, 12, step=3))
  ax.set_yticklabels(np.arange(1, 12, 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


Tags: 代码rightdflabelsnp标签axleft