python繪圖球員技能圖的制作

python繪圖球員技能圖的制作

<pre>

* coding:utf-8 *

import numpy as np
import matplotlib.pyplot as plt

引入字體管理

from matplotlib.font_manager import FontProperties

設(shè)置繪圖樣式

plt.style.use('ggplot')

設(shè)置字體

font=FontProperties(fname=r'/System/Library/Fonts/STHeiti Light.ttc',size=9)

設(shè)置技能球員技能

需要用u進(jìn)行說(shuō)明為Unicode編碼方式

ability_label=[u'進(jìn)攻',u'防守',u'盤帶',u'速度',u'體力',u'射術(shù)']

定義技能的個(gè)數(shù)

ability_size=len(ability_label)

繪制出基本的圖形

ax1=plt.subplot(221,projection='polar')
ax2=plt.subplot(222,projection='polar')
ax3=plt.subplot(223,projection='polar')
ax4=plt.subplot(224,projection='polar')

生成球員的基礎(chǔ)數(shù)據(jù)

player={
'M':np.random.randint(size=ability_size,low=60,high=99),
'H': np.random.randint(size=ability_size, low=60, high=99),
'P': np.random.randint(size=ability_size, low=60, high=99),
'Q': np.random.randint(size=ability_size, low=60, high=99),

}

生成角度

theta=np.linspace(0,2*np.pi,6,endpoint=False)

因?yàn)閳D為首尾閉合,且后一個(gè)數(shù)據(jù)=第一個(gè)數(shù)據(jù)

theta=np.append(theta,theta[0])

球員數(shù)據(jù)拼接

player['M']=np.append(player['M'],player['M'][0])

繪圖

ax1.plot(theta,player['M'],'r')

填充

ax1.fill(theta,player['M'],'r',alpha=0.3)

設(shè)置x坐標(biāo)為需要的角度

ax1.set_xticks(theta)

替換坐標(biāo)角度為技能標(biāo)簽

ax1.set_xticklabels(ability_label,y=0.1,fontproperties=font)

設(shè)置圖的標(biāo)題

ax1.set_title(u'梅西',fontproperties=font,color='r',size=15,y=1)

將y坐標(biāo)強(qiáng)制定義,避免數(shù)字出現(xiàn)重影

ax1.set_yticks([20,40,60,80,100])

player['H']=np.append(player['H'],player['H'][0])
ax2.plot(theta,player['H'],'g')
ax2.fill(theta,player['H'],'g',alpha=0.3)
ax2.set_xticks(theta)
ax2.set_xticklabels(ability_label,y=0.1,fontproperties=font)
ax2.set_title(u'哈維',fontproperties=font,color='r',size=15,y=1)
ax2.set_yticks([20,40,60,80,100])

player['P']=np.append(player['P'],player['P'][0])
ax3.plot(theta,player['P'],'b')
ax3.fill(theta,player['P'],'b',alpha=0.3)
ax3.set_xticks(theta)
ax3.set_xticklabels(ability_label,y=0.1,fontproperties=font)
ax3.set_title(u'皮克',fontproperties=font,color='r',size=15,y=1)
ax3.set_yticks([20,40,60,80,100])

player['Q']=np.append(player['Q'],player['Q'][0])
ax4.plot(theta,player['Q'],'y')
ax4.fill(theta,player['Q'],'y',alpha=0.3)
ax4.set_xticks(theta)
ax4.set_xticklabels(ability_label,y=0.1,fontproperties=font)
ax4.set_title(u'切赫',fontproperties=font,color='r',size=15,y=1)
ax4.set_yticks([20,40,60,80,100])

顯示出圖

plt.show()

</pre>

代碼變瘦

<pre>

* coding:utf-8 *

import numpy as np
import matplotlib.pyplot as plt

引入字體管理

from matplotlib.font_manager import FontProperties

設(shè)置繪圖樣式

plt.style.use('ggplot')

設(shè)置字體

font=FontProperties(fname=r'/System/Library/Fonts/STHeiti Light.ttc',size=9)

設(shè)置技能球員技能

需要用u進(jìn)行說(shuō)明為Unicode編碼方式

ability_label=[u'進(jìn)攻',u'防守',u'盤帶',u'速度',u'體力',u'射術(shù)']

定義球員的姓名

titles=[u'梅西',u'哈維',u'皮克',u'切赫']

定義技能的個(gè)數(shù)

ability_size=len(ability_label)

生成圖形和坐標(biāo)對(duì)象

fig,axes=plt.subplots(ncols=2,nrows=2,subplot_kw=dict(polar=True))

生成基礎(chǔ)數(shù)據(jù)

player = dict.fromkeys(range(4),np.random.randint(size=ability_size,low=60,high=99));

生成角度

theta=np.linspace(0,2*np.pi,6,endpoint=False)

因?yàn)閳D為首尾閉合,且后一個(gè)數(shù)據(jù)=第一個(gè)數(shù)據(jù)

theta=np.append(theta,theta[0])

獲取color的列表

colors=plt.rcParams['axes.color_cycle']

如果key不為數(shù)字,而在字典中需要計(jì)數(shù),又不想引用新的變量,可以對(duì)字典進(jìn)行包裝.

例如 enumerate(player.items()),此時(shí)循環(huán)中出現(xiàn)的字典的k值為0,1,2,3...v值為tuple對(duì)象,直接用v[0],可以

取到原字典中的key,v[1]可以取到原字典中的value

for k,v in player.items():
# 形成循環(huán)數(shù)據(jù),因?yàn)殚]合圖形所以需要增加一組數(shù)據(jù)
v=np.append(v,v[0])
# 生成坐標(biāo)
ax1=axes.ravel()[k]
# 生成顏色
color=colors[k]
# 繪制圖形邊框
ax1.plot(theta, v, color)
# 填充圖形
ax1.fill(theta,v,color,alpha=0.3)
# 調(diào)整x為顯示的技能項(xiàng)
ax1.set_xticks(theta)
# 設(shè)置技能項(xiàng)為文字
ax1.set_xticklabels(ability_label,y=0.1,fontproperties=font)
# 設(shè)置標(biāo)題
ax1.set_title(titles[k],fontproperties=font,color=color,size=15,y=1)
# 統(tǒng)一規(guī)定能力值
ax1.set_yticks([20,40,60,80])

顯示出圖

plt.show()
</pre>

figure_1.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,733評(píng)論 25 708
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,535評(píng)論 6 427
  • 人生的目的是“生活得寫意”。 享受生活要有一定的物質(zhì)基礎(chǔ),所以我們要努力地學(xué)習(xí)和工作,創(chuàng)造財(cái)富,發(fā)展經(jīng)濟(jì)。但勞作不...
    1T婉閱讀 314評(píng)論 0 0
  • "Daddy, Daddy, the color pencil is too blunt, can you hel...
    Jack攝影閱讀 559評(píng)論 0 0
  • 來(lái)我的寒枝吧 也不想你說(shuō)一個(gè)溫暖的故事 可以說(shuō)說(shuō)你的勵(lì)志 走南而闖北,春夏又秋冬 來(lái)我的枝頭吧 春已將至,木也將腐...
    菇蒲閱讀 235評(píng)論 0 0