雷達圖
雷達圖(Radar Chart)又被叫做蜘蛛網圖,適用于顯示三個或更多的維度的變數的強弱情況,比如英雄聯盟中某個影響的屬性(法術傷害,物理防御等),或者是某個企業在哪些業務方面的投入等,都可以用雷達圖方便的表示,
使用plt.polar繪制雷達圖:
在matplotlib.pyplot中,可以通過plt.polar來繪制雷達圖,這個方法的引數跟plt.plot非常的類似,只不過是x軸的坐標點應該為弧度(2*PI=360°),示例代碼如下:
properties = ['輸出','KDA','發育','團戰','生存'] values = [40,91,44,90,95,40] theta = np.linspace(0,np.pi*2,6) plt.polar(theta,values) plt.xticks(theta,properties,fontproperties=font) plt.fill(theta,values)
效果圖如下:
其中有幾點需要注意:
- 因為polar并不會完成線條的閉合繪制,所以我們在繪制的時候需要在theta中和values中在最后多重復添加第0個位置的值,然后在繪制的時候就可以和第1個點進行閉合了,
- polar只是繪制線條,所以如果想要把里面進行顏色填充,那么需要呼叫fill函式來實作,
- polar默認的圓圈的坐標是角度,如果我們想要改成文字顯示,那么可以通過xticks來設定,
使用子圖繪制雷達圖:
在多子圖中,繪圖物件不再是pyplot而是Axes,而Axes及其子類繪制雷達圖則是通過將直角坐標轉換成極坐標,然后再繪制折線圖,示例代碼如下:
- 使用
plt.subplot繪制的子圖:
properties = ['輸出','KDA','發育','團戰','生存'] values = [40,91,44,90,95,40] theta = np.linspace(0,np.pi*2,6) # 生成一個子圖,并且指定子圖的型別為polar axes = plt.subplot(111,projection="polar") axes.plot(theta,values) axes.fill(theta,values)
- 使用plt.subplots繪制的子圖:
properties = ['輸出','KDA','發育','團戰','生存'] values = [40,91,44,90,95,40] theta = np.linspace(0,np.pi*2,6) figure,axes = plt.subplots(1,1,subplot_kw={"projection":"polar"}) axes.plot(theta,values)
- 使用fig.add_subplot繪制的子圖:
properties = ['輸出','KDA','發育','團戰','生存'] values = [40,91,44,90,95,40] theta = np.linspace(0,np.pi*2,6) fig = plt.figure(figsize=(10,10)) axes = fig.add_subplot(111,polar=True) axes.plot(theta,values)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/277279.html
標籤:Python
下一篇:Pyinstaller原理詳解
