最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Matplotlib繪制箱線圖的全過程

 更新時間:2021年09月15日 11:21:34   作者:高成珍  
又稱箱形圖(boxplot)或盒式圖,數(shù)據(jù)大小、占比、趨勢等等的呈現(xiàn)其包含一些統(tǒng)計學(xué)的均值、分位數(shù)、極值等等統(tǒng)計量,因此該圖信息量較大,下面這篇文章主要給大家介紹了關(guān)于Python Matplotlib繪制箱線圖的相關(guān)資料,需要的朋友可以參考下

箱線圖介紹

箱線圖(Box-plot)又稱為盒式圖或箱型圖,是一種用來顯示一組數(shù)據(jù)分散情況的統(tǒng)計圖,它能顯示一組數(shù)據(jù)的上界、下界、中位數(shù)、上下四分位數(shù)以及異常值等。箱線圖的各部分組成及其含義如下圖所示。

 關(guān)鍵術(shù)語說明 四分位數(shù):

  • 四分位數(shù):就是把一組數(shù)據(jù)按照從小到大的順序進(jìn)行排列,然后分成四等份,處于三個分割點(diǎn)位置的數(shù)字就是四分位數(shù);
  • 第一四分位數(shù)(q1):又稱“較小四分位數(shù)”或“下四分位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第25%的數(shù)字,q1的位置 = 1+(n-1)x 0.25;
  • 第二四分位數(shù)(q2):又稱“中位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第50%的數(shù)字,q2的位置= 1+(n-1)x 0.5;
  • 第三四分位數(shù)(q3),又稱“較大四分位數(shù)”或“上四分位數(shù)”,等于該樣本中所有數(shù)值由小到大排列后第75%的數(shù)字。q3的位置= 1+(n-1)x 0.75;
  • 四分位間距(InterQuartile Range,IQR):第三四分位數(shù)與第一四分位數(shù)的差距(q3數(shù)據(jù)- q1數(shù)據(jù));
  • Whiske上限(大于該值即為異常值):q3數(shù) + 1.5*IQR,(1.5表示超過的比例,是一個系數(shù),可根據(jù)實(shí)際情況調(diào)整);
  • Whisker下限(小于該值即為異常值):q1數(shù) - 1.5*IQR。

首先對這組數(shù)據(jù)進(jìn)行排序得到:[12, 30, 36, 40, 45, 50, 80],數(shù)組長度n為7;

q1的位置 = 1+(n-1)x 0.25=1 + 6*0.25 =2.5,所以q1的值為:30 + (36 - 30)*0.5 = 33

q2的位置 = 1+(n-1)x 0.5=1 + 6*0.5 =4,所以q2的值為40

q3的位置 = 1+(n-1)x 0.75=1 + 6*0.75 =5.5,所以q3的值為:45 + (50 - 45)*0.5=47.5

例2:一組數(shù)據(jù)[12, 45, 30, 80, 36, 50, 40, 43],分別求出q1、q2、q3

首先對這組數(shù)據(jù)進(jìn)行排序得到:[12, 30, 36, 40, 43, 45, 50, 80],數(shù)組長度n為8;

q1的位置 = 1+(n-1)x 0.25=1 + 7*0.25 =2.75,所以q1的值為:30 + (36 - 30)*0.75 = 34.5

q2的位置 = 1+(n-1)x 0.5=1 + 7*0.5 =4.5,所以q2的值為40 + (43-40)*0.5=41.5

q3的位置 = 1+(n-1)x 0.75=1 + 7*0.75 =6.25,所以q3的值為:45 + (50 - 45)*0.25=46.25

在numpy中提供了quantile()函數(shù),可以直接獲取四分位數(shù),例如np.quantile(x, 0.25)即可獲取數(shù)組x中的q1值。

Matplotlib中繪制箱線圖的方法:boxplot

boxplot(

        x, notch=None, sym=None, vert=None, whis=None,

        positions=None, widths=None, patch_artist=None,

        bootstrap=None, usermedians=None, conf_intervals=None,

        meanline=None, showmeans=None, showcaps=None, showbox=None,

        showfliers=None, boxprops=None, labels=None, flierprops=None,

        medianprops=None, meanprops=None, capprops=None,

        whiskerprops=None, manage_ticks=True, autorange=False,

        zorder=None, *, data=None):

關(guān)鍵參數(shù)含義說明如下:

  • x:指定要繪制箱線圖的數(shù)據(jù),可以是一組數(shù)據(jù)也可以是多組數(shù)據(jù);
  • notch:是否以凹口的形式展現(xiàn)箱線圖,默認(rèn)非凹口;
  • sym:指定異常點(diǎn)的形狀,默認(rèn)為藍(lán)色的+號顯示;
  • vert:是否需要將箱線圖垂直擺放,默認(rèn)垂直擺放;
  • whis:指定上下須與上下四分位的距離,默認(rèn)為1.5倍的四分位差;
  • positions:指定箱線圖的位置,默認(rèn)為range(1, N+1),N為箱線圖的數(shù)量;
  • widths:指定箱線圖的寬度,默認(rèn)為0.5;
  • patch_artist:是否填充箱體的顏色,默認(rèn)為False;
  • meanline:是否用線的形式表示均值,默認(rèn)用點(diǎn)來表示;
  • showmeans:是否顯示均值,默認(rèn)不顯示;
  • showcaps:是否顯示箱線圖頂端和末端的兩條線,默認(rèn)顯示;
  • showbox:是否顯示箱線圖的箱體,默認(rèn)顯示;
  • showfliers:是否顯示異常值,默認(rèn)顯示;
  • boxprops:設(shè)置箱體的屬性,如邊框色,填充色等;
  • labels:為箱線圖添加標(biāo)簽,類似于圖例的作用;
  • filerprops:設(shè)置異常值的屬性,如異常點(diǎn)的形狀、大小、填充色等;
  • medianprops:設(shè)置中位數(shù)的屬性,如線的類型、粗細(xì)等;
  • meanprops:設(shè)置均值的屬性,如點(diǎn)的大小、顏色等;
  • capprops:設(shè)置箱線圖頂端和末端線條的屬性,如顏色、粗細(xì)等;
  • whiskerprops:設(shè)置須的屬性,如顏色、粗細(xì)、線的類型等;
  • manage_ticks:是否自適應(yīng)標(biāo)簽位置,默認(rèn)為True;
  • autorange:是否自動調(diào)整范圍,默認(rèn)為False;

程序舉例

(1)繪制單個箱線圖

import matplotlib.pyplot as plt
import numpy as np
x = np.array([12, 45, 30, 70, 36, 50, 40, 26, 38])
print(sorted(x))
a = np.quantile(x, 0.75)  # 上四分之一數(shù)
b = np.quantile(x, 0.25)  # 下四分之一數(shù)
print("平均數(shù):", np.mean(x))  # 打印均值
print("中位數(shù):", np.median(x))  # 打印中位數(shù)
print("上四分之一數(shù):", a)  # 打印上四分之一數(shù)
print("下四分之一數(shù):", b)  # 打印下四分之一數(shù)
up = a + 1.5 * (a - b)  # 異常值判斷標(biāo)準(zhǔn)
down = b - 1.5 * (a - b)  # 異常值判斷標(biāo)準(zhǔn)
x = np.sort(x)  # 對原始數(shù)據(jù)排序
shangjie = x[x < up][-1]  # 除了異常值外的最大值
xiajie = x[x > down][0]  # 除了異常值外的最小值
print("上界:", shangjie)  # 打印上界
print("up:", up)
print("down:", down)
print("下界:", xiajie)  # 打印下界
plt.grid(True)  # 顯示網(wǎng)格
y = plt.boxplot(x, meanline=True, showmeans=True,
                flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 15})  # 繪制箱形圖,設(shè)置異常點(diǎn)大小、樣式等
plt.show()  # 顯示圖

程序執(zhí)行效果圖:

 控制臺輸出結(jié)果為:

[12, 26, 30, 36, 38, 40, 45, 50, 70]
平均數(shù): 38.55555555555556
中位數(shù): 38.0
上四分之一數(shù): 45.0
下四分之一數(shù): 30.0
上界: 50
up: 67.5
down: 7.5
下界: 12

(2)繪制多個箱線圖

import matplotlib.pyplot as plt
import numpy as np
x = np.random.randint(10, 100, size=(5, 9))  # 隨機(jī)生成5行9列 [10, 100]之間的數(shù)
print(x)  # 打印數(shù)據(jù)
plt.grid(True)  # 顯示網(wǎng)格
plt.boxplot(x, labels=list("ABCDEFGHI"), sym="r+", showmeans=True)  # 繪制箱線圖
plt.show()  # 顯示圖片

程序執(zhí)行效果圖:

 注:圖中紅色+號表示異常點(diǎn),綠色三角形表示平均數(shù)。

控制臺輸出的打印結(jié)果為:

 更多Python[[90 99 35 32 21 31 83 71 39]
 [24 95 63 50 92 41 89 16 79]
 [73 73 53 21 39 60 50 55 43]
 [64 94 66 26 20 73 40 68 45]
 [74 72 33 81 73 59 85 23 17]]

總結(jié)

到此這篇關(guān)于Python Matplotlib繪制箱線圖的文章就介紹到這了,更多相關(guān)Matplotlib繪制箱線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • python3 中的幾種除法介紹,小數(shù)的不同顯示

    python3 中的幾種除法介紹,小數(shù)的不同顯示

    這篇文章主要介紹了python3 中的幾種除法介紹,小數(shù)的不同顯示,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • rabbitmq(中間消息代理)在python中的使用詳解

    rabbitmq(中間消息代理)在python中的使用詳解

    這篇文章主要介紹了rabbitmq(中間消息代理)在python中的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • python編程Flask框架簡單使用教程

    python編程Flask框架簡單使用教程

    這篇文章主要為大家介紹了python編程中Flask框架簡單使用教程,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • python 疊加等邊三角形的繪制的實(shí)現(xiàn)

    python 疊加等邊三角形的繪制的實(shí)現(xiàn)

    這篇文章主要介紹了python 疊加等邊三角形的繪制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python四種出行路線規(guī)劃的實(shí)現(xiàn)

    python四種出行路線規(guī)劃的實(shí)現(xiàn)

    路徑規(guī)劃中包括步行、公交、駕車、騎行等不同方式,今天借助高德地圖web服務(wù)api,實(shí)現(xiàn)出行路線規(guī)劃。感興趣的可以了解下
    2021-06-06
  • 徹底搞懂Python字符編碼

    徹底搞懂Python字符編碼

    本篇文章帶領(lǐng)大家徹底搞懂Python字符編碼的一些知識,及python字符編碼的一些基礎(chǔ)概念,需要的朋友可以參考下
    2018-01-01
  • Python  PYQT界面點(diǎn)擊按鈕隨機(jī)變色功能

    Python  PYQT界面點(diǎn)擊按鈕隨機(jī)變色功能

    遇到這樣的需求寫一個pyqt界面,要求界面有一個按鈕,每次點(diǎn)擊這個按鈕,就會生成一個10以內(nèi)的隨機(jī)數(shù),當(dāng)隨機(jī)數(shù)出現(xiàn)的時候,界面底色要變成對應(yīng)的顏色,同時要求隨機(jī)數(shù)會在界面中展示出來,并且按鈕和數(shù)字的顏色不會改變,下面給大家分享源代碼,一起看看吧
    2024-08-08
  • Python生成一個迭代器的實(shí)操方法

    Python生成一個迭代器的實(shí)操方法

    在本文里小編給大家分享了關(guān)于Python怎么生成一個迭代器的相關(guān)操作方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2019-06-06
  • Python調(diào)用Google?Bard的圖文詳解

    Python調(diào)用Google?Bard的圖文詳解

    Google?Bard?是一種開源數(shù)據(jù)可視化和探索工具,可為?開發(fā)人員?提供支持,本文主要為大家介紹了Python調(diào)用Google?Bard的方法,需要的可以參考下
    2023-08-08
  • 最新評論

    兴国县| 监利县| 山阳县| 亚东县| 司法| 广东省| 衡南县| 奈曼旗| 嘉义市| 高台县| 新建县| 榕江县| 五常市| 黄龙县| 木兰县| 南川市| 广宗县| 穆棱市| 资溪县| 旺苍县| 克拉玛依市| 兴安县| 龙游县| 连城县| 阳江市| 宣化县| 永安市| 云霄县| 贵溪市| 南阳市| 东山县| 宁都县| 白城市| 通榆县| 石城县| 建瓯市| 平潭县| 沛县| 湘阴县| 舞钢市| 九寨沟县|