matplotlib制作雷達圖報錯ValueError的實現
在教材實例編寫雷達圖時出現ValueError,具體如下:
ValueError: The number of FixedLocator locations (7), usually from a call to set_ticks, does not match the number of ticklabels (6).
而原代碼如下:
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' matplotlib.rcParams['font.sans-serif'] = ['SimHei'] labels = np.array(['綜合','KDA','發(fā)育','推進','生存','輸出']) nAttr = 6 data = np.array([7,5,6,9,8,7]) angles = np.linspace(0,2*np.pi,nAttr,endpoint=False) data = np.concatenate((data,[data[0]])) angles = np.concatenate((angles,[angles[0]])) fig = plt.figure(facecolor="white") plt.subplot(111,polar=True) plt.plot(angles,data,'bo-',color ='g',linewidth=2) plt.fill(angles,data,facecolor='g',alpha=0.25) plt.thetagrids(angles*180/np.pi,labels) plt.figtext(0.52,0.95,'DOTA能力值雷達圖',ha='center') plt.grid(True) plt.show()
原因在于對array類型data、angles進行封閉時,未對labels進行相同操作,導致labels內元素個數與前兩者不相同,從而出現ValueError。
之前在網上尋找解決方案,發(fā)現大多數答主選著將對data、angles進行封閉的語句注釋掉,但這樣就會導致雷達圖不完整,缺少一條連線:

而只需對labels同樣進行封閉即可:
data = np.concatenate((data,[data[0]])) angles = np.concatenate((angles,[angles[0]])) labels=np.concatenate((labels,[labels[0]])) #對labels進行封閉
最終運行結果

到此這篇關于matplotlib制作雷達圖報錯ValueError的實現的文章就介紹到這了,更多相關matplotlib 雷達圖報錯 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Pycharm中配置遠程Docker運行環(huán)境的教程圖解
這篇文章主要介紹了Pycharm中配置遠程Docker運行環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06

