matplotlib繪制箱型圖、誤差棒圖捅位、堆積圖等圖形

1.箱型圖
箱型圖是由一個(gè)箱體和一對(duì)箱須所組成的統(tǒng)計(jì)圖形。箱體由第一四分位數(shù)搂抒、中位數(shù)(第二四分位數(shù))和第三四分位數(shù)所組成的艇搀。在箱須的末端之外的數(shù)值可以理解成離群值,因此求晶,箱須是對(duì)一組數(shù)據(jù)范圍的大致直觀描述焰雕。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False

testA = np.random.randn(5000)
testB = np.random.randn(5000)

testList = [testA,testB]#繪制箱線圖輸入數(shù)據(jù)
labels = ["隨機(jī)數(shù)生成器AlphaRM","隨機(jī)數(shù)生成器BetaRM"]
colors = ["#1b9e77","#d95f02"]

whis = 1.6
width = 0.35
bplot = plt.boxplot(testList,
                    whis=whis,#四分位間距的倍數(shù),用來確定箱須包含數(shù)據(jù)的范圍大小
                    widths=width,#設(shè)置箱體的寬度
                    sym="o",#離群值的標(biāo)記樣式
                    labels=labels,#繪制每一個(gè)數(shù)據(jù)集的刻度標(biāo)簽
                    patch_artist=True)#是否給箱體添加顏色
for patch,color in zip(bplot["boxes"],colors):
    patch.set_facecolor(color)
plt.ylabel("隨機(jī)數(shù)值")
plt.title("生成器抗干擾能力的穩(wěn)定性比較")

plt.grid(axis="y",ls=":",lw=1,color="gray",alpha=0.4)
plt.show()
箱型圖

我們將關(guān)鍵字參數(shù)notch的參數(shù)值設(shè)置為True芳杏,其他語句不變矩屁,那么箱體就會(huì)變成有“V”型凹痕的箱體了辟宗。


V型箱體

水平方向的箱型圖

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False

x = np.random.randn(1000)
plt.boxplot(x,vert=False)
plt.xlabel("隨機(jī)數(shù)值")
plt.yticks([1],["隨機(jī)數(shù)生成器AlphaRM"],rotation=90)
plt.title("隨機(jī)數(shù)生成器抗干擾能力的穩(wěn)定性")

plt.grid(axis="x",ls=":",lw=1,color="gray",alpha=0.4)
plt.show()
水平方向

不繪制離群值的水平放置的箱型圖,修改下面語句即可:

plt.boxplot(x,vert=False,showfliers=False)
無離群值

2.誤差棒圖
在很多科協(xié)實(shí)驗(yàn)中都存在測(cè)量誤差或是試驗(yàn)誤差吝秕,這是無法控制的客觀因素泊脐。在可視化試驗(yàn)結(jié)果的時(shí)候,最好可以給試驗(yàn)結(jié)果增加觀測(cè)結(jié)果的誤差以表示客觀存在的測(cè)量偏差烁峭。誤差棒圖就是運(yùn)用在這一場(chǎng)景中的很理想的統(tǒng)計(jì)圖形容客。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1,0.6,10)
y = np.exp(x)
error = 0.05+0.15*x
lower_error = error
upper_error = 0.3*error
error_limit = [lower_error,upper_error]

plt.errorbar(x,y,yerr=error_limit,fmt=":o",
             ecolor="y",elinewidth=4,
             ms=5,mfc="c",mec="r",
             capthick=1,capsize=2)
# yerr單一數(shù)值的非對(duì)稱形式誤差范圍;fmt數(shù)據(jù)點(diǎn)的標(biāo)記樣式和數(shù)據(jù)點(diǎn)標(biāo)記的連接線樣式
# ecolor誤差棒的顏色線條顏色约郁;elinewidth誤差棒的線條粗細(xì)缩挑;ms數(shù)據(jù)點(diǎn)的大小鬓梅;mfc數(shù)據(jù)點(diǎn)的標(biāo)記顏色
# mec數(shù)據(jù)點(diǎn)的標(biāo)記邊緣顏色供置;capthick誤差棒邊緣橫杠的厚度;capsize誤差棒邊緣橫杠的大小
plt.xlim(0,0.7)
plt.show()
誤差棒圖

帶誤差棒的柱狀圖

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = np.arange(5)
y = [100,68,79,91,82]
std_err = [7,2,6,10,5]
error_attri = dict(elinewidth=2,ecolor="black",capsize=3)
plt.bar(x,y,
        color="c",
        width=0.6,
        align="center",
        yerr=std_err,
        error_kw=error_attri,
        tick_label=["園區(qū)1","園區(qū)2","園區(qū)3","園區(qū)4","園區(qū)5"])
plt.xlabel("芒果種植區(qū)")
plt.ylabel("收割量")
plt.title("不同芒果種植區(qū)的單次收割量")
plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2)
plt.show()
誤差柱狀圖

帶誤差棒的堆積柱狀圖

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = np.arange(5)
y1 = [1200,2400,1800,2200,1600]
y2 = [1050,2100,1300,1600,1340]
std_err1 = [150,100,180,130,80]
std_err2 = [120,110,170,150,120]
bar_width = 0.6
tick_label=["家庭","小說","心理","科技","兒童"]
error_attri = dict(ecolor="black",elinewidth=2,capsize=0)

plt.bar(x,y1,
        bar_width,
        color="#87ceeb",
        align="center",
        yerr=std_err1,
        error_kw=error_attri,
        label="地區(qū)1")
plt.bar(x,y2,
        bar_width,
        bottom=y1,
        color="#CD5C5C",
        align="center",
        yerr=std_err2,
        error_kw=error_attri,
        label="地區(qū)2")

plt.ylabel("訂購數(shù)量")
plt.xlabel("圖書種類")
plt.title("大型圖書展銷會(huì)的不同圖書種類的采購情況")
plt.grid(True,axis="x",ls=":",color="gray",alpha=0.2)
plt.xticks(x,tick_label)
plt.legend()
plt.show()
誤差堆積柱狀圖

3.堆積折線圖
通過繪制不同數(shù)據(jù)集的折線圖而生成的绽快。堆積折線圖是按照垂直方向上彼此堆疊且又不相互覆蓋的排列順序芥丧,繪制若干條折線圖而形成的組合圖形。
用函數(shù)stackplot()繪制堆積折線圖

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(1,6,1)
y=[0,4,3,5,6]
y1=[1,3,4,2,7]
y2=[3,4,1,6,5]
labels=["BluePlanet","BrownPlanet","GreenPlanet"]
colors=["#8da0cb","#fc8d62","#66c2a5"]
plt.stackplot(x,y,y1,y2,labels=labels,colors=colors)
plt.legend(loc="upper left")
plt.show()
堆積折線圖

4.間斷條形圖
間斷條形圖是在條形圖的基礎(chǔ)上繪制而成的谎僻,主要用來可視化定性數(shù)據(jù)的相同指標(biāo)在時(shí)間維度上的指標(biāo)值的變化情況娄柳,實(shí)現(xiàn)定性數(shù)據(jù)的相同指標(biāo)的變化情況的有效直觀比較。
用函數(shù)broken_bath()繪制間斷條形圖

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False

plt.broken_barh([(30,100),(180,50),(260,70)],(20,8),facecolors="#1f78b4")
plt.broken_barh([(60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=("#7fc97f","#beaed4","#fdc086","#ffff99"))

plt.xlim(0,360)
plt.ylim(5,35)
plt.xlabel("演出時(shí)間")

plt.xticks(np.arange(0,361,60))
plt.yticks([15,25],["歌劇院A","歌劇院B"])
plt.grid(ls="-",lw=1,color="gray")
plt.title("不同地區(qū)的歌劇院的演出時(shí)間比較")
plt.show()
間斷條形圖

5.階梯圖
階梯圖是反映數(shù)據(jù)的趨勢(shì)變化或是周期規(guī)律的艘绍。經(jīng)常使用在時(shí)間序列數(shù)據(jù)的可視化任務(wù)中赤拒,凸顯時(shí)序數(shù)據(jù)的波動(dòng)周期和規(guī)律。
用函數(shù)step()繪制階梯圖

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(1,10,10)
y=np.sin(x)
plt.step(x,y,color="#8dd3c7",where="pre",lw=2)
#關(guān)鍵字參數(shù)where取pre左開右閉诱鞠,取post左閉右開
plt.xlim(0,11)
plt.xticks(np.arange(1,11,1))
plt.ylim(-1.2,1.2)
plt.show()
階梯圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挎挖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子航夺,更是在濱河造成了極大的恐慌蕉朵,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阳掐,死亡現(xiàn)場(chǎng)離奇詭異始衅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)缭保,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門汛闸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人艺骂,你說我怎么就攤上這事诸老。” “怎么了钳恕?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵别伏,是天一觀的道長(zhǎng)蹄衷。 經(jīng)常有香客問我,道長(zhǎng)厘肮,這世上最難降的妖魔是什么愧口? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮轴脐,結(jié)果婚禮上调卑,老公的妹妹穿的比我還像新娘。我一直安慰自己大咱,他們只是感情好恬涧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碴巾,像睡著了一般溯捆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厦瓢,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天提揍,我揣著相機(jī)與錄音,去河邊找鬼煮仇。 笑死劳跃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浙垫。 我是一名探鬼主播刨仑,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼夹姥!你這毒婦竟也來了杉武?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤辙售,失蹤者是張志新(化名)和其女友劉穎轻抱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旦部,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祈搜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了士八。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片容燕。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖曹铃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捧杉,我是刑警寧澤陕见,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布秘血,位于F島的核電站,受9級(jí)特大地震影響评甜,放射性物質(zhì)發(fā)生泄漏灰粮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一忍坷、第九天 我趴在偏房一處隱蔽的房頂上張望粘舟。 院中可真熱鬧,春花似錦佩研、人聲如沸柑肴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晰骑。三九已至,卻和暖如春绊序,著一層夾襖步出監(jiān)牢的瞬間硕舆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工骤公, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抚官,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓阶捆,卻偏偏與公主長(zhǎng)得像凌节,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趁猴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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

  • 圖形初步 在本章中刊咳,我們將討論處理圖形的一般方法。我們首先探討如何創(chuàng)建和保存圖形儡司,然后關(guān)注如何修改那些存在于所有圖...
    jplee閱讀 5,019評(píng)論 0 12
  • 相關(guān)概念 一娱挨、用法 比較兩個(gè)定量變量用散點(diǎn)圖比較定量變量和定性變量用小提琴圖,箱線圖比較兩個(gè)定性變量用簇狀柱形圖(...
    喔蕾喔蕾喔蕾蕾蕾閱讀 2,277評(píng)論 0 2
  • 你行走在城市的夜晚 等一輛疾馳而來的車 人海推動(dòng)著人潮 一往直前的 圓一個(gè)奢望 你奔忙在人海浮世 等一扇鐵門打開 ...
    我后半生的城市里閱讀 243評(píng)論 0 0
  • 特此聲明捕犬,只是一個(gè)老學(xué)姐的個(gè)人經(jīng)驗(yàn)跷坝,不代表一定要按照這樣的方法學(xué)習(xí)。 考研英語分為英語一和英語二碉碉,他們雖然考的側(cè)重...
    了望臺(tái)閱讀 988評(píng)論 5 9
  • 吾馬文章柴钻,此處為文后評(píng)論,日后整理 不能因?yàn)榻K點(diǎn)就在附近而掠過沿途的風(fēng)景垢粮。不要因?yàn)闀r(shí)間短而不去與人交流贴届,因?yàn)槊總€(gè)人...
    NoneLand閱讀 161評(píng)論 0 0