Python-matplotlib統(tǒng)計(jì)圖之箱線圖漫談

(1)

箱線圖,又稱箱形圖(boxplot)或盒式圖,不同于一般的折線圖彬向、柱狀圖或餅圖等傳統(tǒng)圖表葵礼,只是數(shù)據(jù)大小、占比苛萎、趨勢等等的呈現(xiàn),其包含一些統(tǒng)計(jì)學(xué)的均值、分位數(shù)刀荒、極值等等統(tǒng)計(jì)量,因此棘钞,該圖信息量較大缠借,不僅能夠分析不同類別數(shù)據(jù)平均水平差異(需在箱線圖中加入均值點(diǎn)),還能揭示數(shù)據(jù)間離散程度宜猜、異常值泼返、分布差異等等。

在python中常用matplotlib的boxplot來繪制姨拥,最簡單繪制的如下:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
np.random.seed(2)  #設(shè)置隨機(jī)種子
df = pd.DataFrame(np.random.rand(5,4),
columns=['A', 'B', 'C', 'D'])#先生成0-1之間的5*4維度數(shù)據(jù)绅喉,再裝入4列DataFrame中
df.boxplot() #也可用plot.box()
plt.show()
Paste_Image.png

從圖形可以看出,A叫乌、B柴罐、C、D四組數(shù)A憨奸、D數(shù)據(jù)較集中(大部分在上下四分位箱體內(nèi))革屠,但都有異常值,C的離散程度最大(最大值與最小值之間距離)排宰,以均值為中心似芝,B分布都有明顯右偏(即較多的值分布在均值的右側(cè)),A板甘、C則有明顯左偏党瓮。

(2)
從分析的角度來說,上面boxplot最初始圖形已經(jīng)夠用盐类,但是在matplotlib庫下boxplot函數(shù)中包含n多參數(shù)寞奸,涉及到對框的顏色及形狀、線段線型在跳、均值線枪萄、異常點(diǎn)的形狀大小等等設(shè)置,由于大多并不常用硬毕,用了幾個(gè)常用參數(shù)呻引,作圖如下:

df.boxplot(sym='r*',vert=False,patch_artist=True,meanline=False,showmeans=True)
plt.show()

Paste_Image.png

其中,sym='r*',表示異常點(diǎn)的形狀吐咳,
vert=False逻悠,表示橫向還是豎向(True)元践,,
patch_artist=True,(上下四分位框內(nèi)是否填充,True為填充)
meanline=False,showmeans=True童谒,是否有均值線及其形狀单旁,meanline=True時(shí),均值線也像中位數(shù)線一樣是條紅色線段饥伊,這樣容易與中位數(shù)線混淆象浑。
另外,還有其他參數(shù)琅豆,比如notch表示中間箱體是否缺口愉豺,whis為設(shè)置數(shù)據(jù)的范圍,showcaps茫因、showbox是否顯示邊框蚪拦,可以參見
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.boxplot,如該網(wǎng)頁中圖形:
Paste_Image.png

左上圖是默認(rèn)圖形冻押,中上驰贷、右上是顯示均值點(diǎn)及形狀,左下是是否顯示箱體邊框洛巢,中下是帶缺口的箱體括袒,右下是是否顯示異常值。
(3)
前邊說過稿茉,很多參數(shù)使用很少锹锰,但對于圖形來說,可能還能用到的就是美化狈邑,比如各條線的顏色城须,粗細(xì)程度等等。這里可用for循環(huán)來構(gòu)造米苹。

f=df.boxplot(sym='r*',patch_artist=True)
for box in f['boxes']:
    # 箱體邊框顏色
    box.set( color='#7570b3', linewidth=2)
    # 箱體內(nèi)部填充顏色
    box.set( facecolor = '#1b9e77' )
for whisker in f['whiskers']:
    whisker.set(color='r', linewidth=2)
for cap in f['caps']:
    cap.set(color='g', linewidth=3)
for median in f['medians']:
    median.set(color='DarkBlue', linewidth=3)
for flier in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
plt.show()
Paste_Image.png

其中,boxes, 是25分位值和75分位值構(gòu)成的box,
medians, 是中位值的橫線, 每個(gè)median是一個(gè)Line2D對象
whiskers, 是指從box 到error bar之間的豎線.
fliers, 是指error bar線之外的離散點(diǎn).
caps, 是指error bar橫線.
means, 是均值的橫線,

(4)
還可以做子圖砰琢,如我們在最開始的DataFrame數(shù)據(jù)中加入分類數(shù)據(jù)列:

df['E'] = np.random.choice(['X', 'Y'], size=20)#加入以X蘸嘶、Y隨機(jī)分類的E列
print(df)
plt.figure()
df.boxplot(by='E')
plt.show()
Paste_Image.png

這樣我們就可以比較,不同類別X陪汽、Y在同一列下的數(shù)據(jù)分布情況及其差異训唱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挚冤,隨后出現(xiàn)的幾起案子况增,更是在濱河造成了極大的恐慌,老刑警劉巖训挡,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澳骤,死亡現(xiàn)場離奇詭異歧强,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)为肮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門摊册,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颊艳,你說我怎么就攤上這事茅特。” “怎么了棋枕?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵白修,是天一觀的道長。 經(jīng)常有香客問我重斑,道長兵睛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任绸狐,我火速辦了婚禮卤恳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寒矿。我一直安慰自己突琳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布符相。 她就那樣靜靜地躺著拆融,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啊终。 梳的紋絲不亂的頭發(fā)上镜豹,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音蓝牲,去河邊找鬼趟脂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛例衍,可吹牛的內(nèi)容都是我干的昔期。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼佛玄,長吁一口氣:“原來是場噩夢啊……” “哼硼一!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梦抢,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤般贼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哼蛆,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蕊梧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了人芽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片望几。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖萤厅,靈堂內(nèi)的尸體忽然破棺而出橄抹,到底是詐尸還是另有隱情,我是刑警寧澤惕味,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布楼誓,位于F島的核電站,受9級特大地震影響名挥,放射性物質(zhì)發(fā)生泄漏疟羹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一禀倔、第九天 我趴在偏房一處隱蔽的房頂上張望榄融。 院中可真熱鬧,春花似錦救湖、人聲如沸愧杯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽力九。三九已至,卻和暖如春邑闺,著一層夾襖步出監(jiān)牢的瞬間跌前,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工陡舅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抵乓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓靶衍,卻偏偏與公主長得像臂寝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子摊灭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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