Python繪制統(tǒng)計(jì)圖表

python對數(shù)據(jù)統(tǒng)計(jì)特別友好感凤,原生庫即有相關(guān)支持:matplotlib

1.環(huán)境配置

sudo pip install matplotlib

安裝完成后需要調(diào)整下配置文件(mac可跳過)兴蒸,原因:python解釋器各個(gè)平臺版本都有辛掠,理論上會cover大多數(shù)底層接口红省,所以看起來“跨平臺”劣光。但是部分與繪圖/進(jìn)程/系統(tǒng)內(nèi)核等相關(guān)功能亭引,不同系統(tǒng)間差異較大贞岭,python尚未全cover八毯。比如我們matplotlib在不同系統(tǒng)上兼容性就有點(diǎn)問題,所以需要通過配置文件來獲得“跨平臺”的效果瞄桨。針對matplotlib有合適的egg包可以解決话速,修改配置文件讓egg包生效即可。

where is matlotlibrc

即可獲得配置文件路徑(windows請全盤搜索)讲婚,打開文件把backend改為以下Agg:

# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo

# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG

# Template.

# You can also deploy your own backend outside of matplotlib by

# referring to the module name (which must be in the PYTHONPATH) as

# ‘module://my_backend’.

backend : Agg

2.hello world

# coding:utf-8

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

import numpy as np

import os

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False


plt.plot( [12,34,56,78,90])#輸入一個(gè)成員都是數(shù)字的數(shù)組

plt.savefig('tmp.png')#保存為圖片

plt.close('all')#清空畫布尿孔。不要省略這一句,不然多個(gè)圖會有bug筹麸。

一共3句活合,一句都不能少,這就輸出了個(gè)圖片“tmp.png”


hello world

3.定制坐標(biāo)軸

plt.plot( [12,34,56,78,90])

plt.xticks([0,1,2,3,4], ['1月'.decode('utf-8'),'2月'.decode('utf-8'),'3月'.decode('utf-8'),'4月'.decode('utf-8'),'5月'.decode('utf-8')], rotation=0)

plt.savefig('tmp.png')

plt.close('all')

以上只多了一行物赶,輸入2個(gè)數(shù)組白指,定制了x軸。第一個(gè)數(shù)組標(biāo)記了文本出現(xiàn)的位置酵紫,第二個(gè)數(shù)組是unicode字符串告嘲。rotation可以讓文字歪過來,在文本過長互相壓蓋時(shí)使用奖地。


定制坐標(biāo)軸

4.定制圖例

plt.plot( [12,34,56,78,90],label='上月'.decode('utf-8'))

plt.legend(bbox_to_anchor=[0.3, 1])

plt.savefig('tmp.png')

plt.close('all')

畫圖時(shí)加個(gè)參數(shù)“l(fā)abel”橄唬,定義legend之后就會自動(dòng)出圖例。同樣只支持unicode字符串参歹。


定制圖例

5.定制標(biāo)題

plt.plot( [12,34,56,78,90])

plt.title('反饋率'.decode('utf-8'))

plt.savefig('tmp.png')

plt.close('all')

只需要加一句仰楚,傳入unicode字符串。python默認(rèn)是unicode犬庇,但是寫了coding:utf-8之后會把默認(rèn)編碼修改成utf-8僧界,所以這里需要decode回來。


定制標(biāo)題

6.定制圖片尺寸

fig=plt.gcf()

fig.set_size_inches(10, 5)


plt.plot( [12,34,56,78,90])

plt.savefig('tmp.png')

plt.close('all')

需要在繪制之前臭挽,設(shè)定圖片尺寸捂襟,只需要2句。長寬單位是英寸欢峰,建議估摸著多試幾次找滿意的尺寸葬荷。


定制圖片尺寸

7.圖表類型

常用的就 折線圖涨共,餅圖,條形圖闯狱;每種圖有不同的定制方式煞赢。

plt.plot([12,34,56,78,90],color='blue', label='反饋率'.decode('utf-8'),linewidth=5,linestyle='-.')

折線圖中,label是圖例哄孤,color是線顏色照筑,linewidth是線寬,linestyle是線類型

plt.pie([15,23,14,5],explode=[0,0.1,0,0],labels=['a','b','c','d'],colors=['r','b','g','w'],autopct='%1.1f%%',shadow=True,startangle=50)

餅圖中瘦陈,explode是突出顯示凝危,label是圖例,color是顏色晨逝,autopct是占比格式蛾默,shadow是陰影,startangle是開始繪制的位置

plt.bar(left=[0,1,2], height=[10,15,20],width=0.3,alpha=0.3, color='b',label='month',edgecolor='#000000',linewidth=2)

條形圖比其他圖多一個(gè)必選輸入捉貌,需要輸入條形長度和條形位置支鸡。

8.多子圖

也就是在一張圖片上,畫多個(gè)圖表趁窃。常見的就是上下組合牧挣,左右組合,4拼醒陆。不建議畫更復(fù)雜的圖瀑构。

左右:

plt.figure(12)#先分成左右兩塊

plt.subplot(121)#繪制第一塊

plt.plot([10,15,20])

plt.subplot(122)#繪制第2塊

plt.plot([10,15,20])


plt.savefig('tmp.png')

plt.close('all')

左右均等

上下:

plt.figure(21)#先分成上下兩塊

plt.subplot(211)#繪制第一塊

plt.plot([10,15,20])

plt.subplot(212)#繪制第2塊

plt.plot([10,15,20])


plt.savefig('tmp.png')

plt.close('all')

上下均等

plt.figure(22)#先分成4兩塊

plt.subplot(221)#繪制第一塊

plt.plot([10,15,20])

plt.subplot(222)#繪制第2塊

plt.plot([10,15,20])

plt.subplot(223)#繪制第3塊

plt.plot([10,15,20])

plt.subplot(224)#繪制第4塊

plt.plot([10,15,20])

plt.savefig('tmp.png')

plt.close('all')

4拼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刨摩,隨后出現(xiàn)的幾起案子寺晌,更是在濱河造成了極大的恐慌,老刑警劉巖澡刹,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呻征,死亡現(xiàn)場離奇詭異,居然都是意外死亡罢浇,警方通過查閱死者的電腦和手機(jī)怕犁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來己莺,“玉大人,你說我怎么就攤上這事戈轿×枋埽” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵思杯,是天一觀的道長胜蛉。 經(jīng)常有香客問我挠进,道長,這世上最難降的妖魔是什么誊册? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任领突,我火速辦了婚禮,結(jié)果婚禮上案怯,老公的妹妹穿的比我還像新娘君旦。我一直安慰自己,他們只是感情好嘲碱,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布金砍。 她就那樣靜靜地躺著,像睡著了一般麦锯。 火紅的嫁衣襯著肌膚如雪恕稠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天扶欣,我揣著相機(jī)與錄音鹅巍,去河邊找鬼。 笑死料祠,一個(gè)胖子當(dāng)著我的面吹牛骆捧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播术陶,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼凑懂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梧宫?” 一聲冷哼從身側(cè)響起接谨,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塘匣,沒想到半個(gè)月后脓豪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忌卤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年扫夜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驰徊。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笤闯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出棍厂,到底是詐尸還是另有隱情颗味,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布牺弹,位于F島的核電站浦马,受9級特大地震影響时呀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晶默,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一谨娜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧磺陡,春花似錦趴梢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圆丹,卻和暖如春滩愁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辫封。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工硝枉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倦微。 一個(gè)月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓妻味,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欣福。 傳聞我的和親對象是個(gè)殘疾皇子责球,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361

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