matplotlib 雷达图2
生活随笔
收集整理的這篇文章主要介紹了
matplotlib 雷达图2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明
搞了一個最新版本的雷達圖,比以前那個美觀。
不多說,代碼奉上:
完整代碼
''' matplotlib雷達圖 ''' import numpy as np import matplotlib.pyplot as plt# 雷達圖 def plot_radar(labels, data, score):''' 用法: >>> labels = np.array(['藝術A','調研I','實際R','常規C','企業E','社會S']) #標簽 >>> data = np.array([1,4,3,6,4,8]) # 數據 >>> score = 10 # 表明數據是“十分制”。其可選的選項有1分制、5分制、10分制、100分制 >>> plot_radar(labels, data, score) # 畫雷達圖 '''n = len(labels)# 轉化為十分制!!!if score in [5, 10, 100]:data = data * 10/scoreelif score == 1:data = data * 10angles = np.linspace(0 + np.pi/2, 2*np.pi + np.pi/2, n, endpoint=False) # 旋轉90度,從正上方開始!data = np.concatenate((data, [data[0]])) # 閉合angles = np.concatenate((angles, [angles[0]])) # 閉合fig = plt.figure()ax = fig.add_subplot(111, polar=True)# 參數polar,表示極坐標!!# 自己畫grid線(5條環形線)for i in [2,4,6,8,10]:ax.plot(angles, [i]*(n+1), 'b-',lw=0.5) # 之所以 n +1,是因為要閉合!# 填充底色ax.fill(angles, [10]*(n+1), facecolor='g', alpha=0.5)# 自己畫grid線(6條半徑線)for i in range(n):ax.plot([angles[i], angles[i]], [0, 10], 'b-',lw=0.5)# 畫線ax.plot(angles, data, 'bo-', linewidth=2)# 填充#ax.fill(angles, data, facecolor='r', alpha=0.25)ax.fill(angles, data, facecolor='r')ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")ax.set_title("matplotlib雷達圖", va='bottom', fontproperties="SimHei")ax.set_rlim(0,10)# 下兩行去掉所有默認的grid線ax.spines['polar'].set_visible(False) # 去掉最外圍的黑圈ax.grid(False) # 去掉中間的黑圈# 關閉數值刻度ax.set_yticks([])plt.show()# 測試 if __name__ == '__main__':labels = np.array(['藝術A','調研I','實際R','常規C','企業E','社會S']) #標簽data = np.array([1,4,3,6,4,8]) # 數據score = 10 # 表明數據是“十分制”。其可選的選項有1分制、5分制、10分制、100分制# 畫雷達圖plot_radar(labels, data, score)效果圖
本文轉自羅兵博客園博客,原文鏈接:http://www.cnblogs.com/hhh5460/p/7359607.html,如需轉載請自行聯系原作者總結
以上是生活随笔為你收集整理的matplotlib 雷达图2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最有二叉树 哈夫曼树
- 下一篇: CentOS 更改Apache默认网站目