如何修复 Python 雷达图中的 FixedLocator 问题?

How to fix FixedLocator issue in my radar chart in Python?

我在使用已定义数据框的某些功能显示雷达图时遇到问题。 当我 运行 代码时,我收到一条错误消息。

我该如何解决这个问题?

这是我的数据框列名称,如下所示。

Name    PrimaryRole Manufacturer    Country Number  ActiveSince LastBuilt   Retired State   Crew    Length  Wingspan    Height  WingArea    MaxSpeed    Country_Flag_URL

这是我绘制雷达图的函数,定义如下。

def radar_chart(values=[], title= "", saveFile = ""):

    labels=np.array(['Crew',
                     'Length',
                     'Wingspan',
                     'Height',
                     'WingArea',
                     'MaxSpeed'
                    ]
                   )
    
    
    angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)
    angles=np.concatenate((angles,[angles[0]]))

    fig=plt.figure(figsize=(6,6))
    plt.suptitle(title, y=1.04)
    for v in values:
        stats=np.array(ww2aircraft_df[ww2aircraft_df["Name"]==v][labels])[0]
        print(stats)
        stats=np.concatenate((stats,[stats[0]]))
        print(stats)
        ax = fig.add_subplot(111, polar=True)
        ax.plot(angles, stats, 'o-', linewidth=2, label = v)
        ax.fill(angles, stats, alpha=0.25)
        ax.set_thetagrids(angles * 180/np.pi, labels) // ISSUE IS HERE

    ax.grid(True)
    #plt.legend(loc="upper right",bbox_to_anchor=(1.2,1.0))
    ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.10),
      fancybox=True, shadow=True, ncol=5, fontsize=13)
    plt.tight_layout()
    plt.savefig('images/' + saveFile, bbox_inches = "tight")
    plt.show()

下面是我的代码片段。

ww2aircraft_df_top_5 = ww2aircraft_df.sort_values(by="MaxSpeed", ascending = False)
ww2aircraft_df_top_5 = ww2aircraft_df_top_5[:5]
radar_chart(values=ww2aircraft_df_top_5["Name"],
           title="Title", saveFile = "image.png")

这是如下所示的错误消息。

ValueError: The number of FixedLocator locations (7), usually from a call to set_ticks, does not match the number of ticklabels (6).

我从函数中删除这两行后,问题就消失了。

angles=np.concatenate((angles,[angles[0]]))
stats=np.concatenate((stats,[stats[0]]))