You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FLORIS中为风电场布局可视化添加风机标签报错的解决咨询

问题:FLORIS添加风机标签时触发TypeError错误

我尝试为FLORIS生成的风电场风机图添加风机ID标签,调用add_turbine_id_labels函数时出现错误。生成风机图的代码为:

visualization.plot_turbines_with_fi(fi=fi)

添加标签的代码及报错信息如下:

visualization.plot_turbines_with_fi(fi=fi)
visualization.add_turbine_id_labels(fi=fi, ax=plt.Axes)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[32], line 2
      1 visualization.plot_turbines_with_fi(fi=fi)
----> 2 visualization.add_turbine_id_labels(fi=fi, ax=plt.Axes)

File ~\anaconda3\lib\site-packages\floris\tools\visualization.py:140, in add_turbine_id_labels(fi, ax, **kwargs)
    134 layout_x, layout_y, _, _, _ = rotate_coordinates_rel_west(
    135     np.array([wind_direction]),
    136     coordinates_array
    137 )
    139 for i in range(fi.floris.farm.n_turbines):
--> 140     ax.annotate(
    141         i,
    142         (layout_x[0,0,i], layout_y[0,0,i]),
    143         xytext=(0,10),
    144         textcoords="offset points",
    145         **kwargs
    146     )

TypeError: annotate() missing 1 required positional argument: 'xy'

错误原因

你传入的ax=plt.Axes是坐标轴类本身,而非已经创建的坐标轴实例。annotate方法需要调用在实例对象上,直接传入类会导致参数绑定失败,触发xy参数缺失的错误。

解决方案

方案1:复用plot_turbines_with_fi返回的坐标轴实例

plot_turbines_with_fi默认会返回创建的坐标轴对象,直接将其传入add_turbine_id_labels即可:

ax = visualization.plot_turbines_with_fi(fi=fi)
visualization.add_turbine_id_labels(fi=fi, ax=ax)
plt.show()

方案2:获取当前活跃的坐标轴实例

如果已经执行了绘图代码,可以用plt.gca()(Get Current Axes)获取当前的坐标轴实例:

visualization.plot_turbines_with_fi(fi=fi)
ax = plt.gca()
visualization.add_turbine_id_labels(fi=fi, ax=ax)
plt.show()

内容的提问来源于stack exchange,提问作者jackdotdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:41:00