欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實(shí)現(xiàn)帕累托圖的示例詳解

 更新時(shí)間:2023年03月11日 11:35:25   作者:田辛 | 田豆芽  
帕累托圖是一種特殊的直方圖, 在項(xiàng)目管理知識(shí)體系中屬于質(zhì)量管理的工具。本文為大家整理了Python實(shí)現(xiàn)帕累托圖的方法,需要的可以參考一下

1.定義

帕累托圖:是一種特殊的直方圖, 在項(xiàng)目管理知識(shí)體系中屬于質(zhì)量管理的工具。 它可以幫助觀眾了解哪些因素對(duì)結(jié)果影響最大。它基于帕累托原則,即 80% 的結(jié)果來自 20% 的原因。該圖表有助于以圖形方式顯示此原理。

2.帕累托原理

該原則也被稱為80/20 規(guī)則、關(guān)鍵少數(shù)法則因子稀疏原則。約瑟夫·朱蘭 (Joseph Juran)于 1937 年公布了這個(gè)概念,并以著名經(jīng)濟(jì)學(xué)家維爾弗雷多·帕累托的名字命名,他在 19 世紀(jì)后期首次記錄了這種現(xiàn)象。

從本質(zhì)上講,帕累托指出,在許多地方,80/20 的分布很普遍,幾乎存在于我們生活的各個(gè)方面。他最初的觀察是關(guān)于人口和財(cái)富。他發(fā)現(xiàn),意大利 80% 的土地歸 20% 的人口所有。對(duì)其他國家的調(diào)查顯示了類似的分布模式。

這種財(cái)富分配目前仍然成立。1992 年聯(lián)合國開發(fā)計(jì)劃署發(fā)布的一份報(bào)告顯示,世界 20% 的人口創(chuàng)造了世界人口收入的 80% 左右。這種極其不平等的分配存在于稅收、收入以及幾乎所有其他生活領(lǐng)域。

體育:15% 的棒球運(yùn)動(dòng)員創(chuàng)造了 85% 的勝利,從理論上講,這適用于所有體育項(xiàng)目。還有人說,20% 的訓(xùn)練方法產(chǎn)生了 80% 的收益。

計(jì)算:微軟發(fā)現(xiàn),修復(fù) 20% 最常報(bào)告的錯(cuò)誤可以解決 80% 的錯(cuò)誤和崩潰。這是 20% 的代碼持有 80% 的錯(cuò)誤。相反,最棘手的 20% 的編碼需要開發(fā)人員 80% 的時(shí)間。

安全:職業(yè)健康與安全專業(yè)人員承認(rèn),20% 的危險(xiǎn)導(dǎo)致 80% 的傷害。

健康和社會(huì)福利:20% 的患者使用 80% 的資源。80% 的犯罪是由 20% 的罪犯犯下的。這份清單涵蓋了所有人類屬性。

3.帕累托原則如何應(yīng)用于商業(yè)

正如 80/20 規(guī)則適用于非商業(yè)領(lǐng)域的幾乎所有場(chǎng)景一樣,它也適用于商業(yè)環(huán)境。80% 的銷售額來自于 20% 的銷售人員。20% 的銷售和營銷活動(dòng)帶來了 80% 的業(yè)績(jī)。在工廠中,80% 的缺陷是由 20% 的流程造成的。 80% 的投訴是由于 20% 的流程造成的。從本質(zhì)上講,幾乎商業(yè)所有方面都反映了這一規(guī)則,而擁有顯示數(shù)字的圖表有助于組織識(shí)別和解決問題。

基本上,如果知道 20% 的東西會(huì)產(chǎn)生最積極的結(jié)果,就可以向其中投入更多的資源,而不是把時(shí)間、精力和金錢浪費(fèi)在對(duì)組織沒有幫助的事情上。如果帕累托圖顯示 80% 的業(yè)務(wù)來自 Facebook 廣告,您就知道應(yīng)該把精力集中在哪里。

4.什么時(shí)候應(yīng)該使用帕累托圖

帕累托圖在以下情況下是理想的選擇:

  • 您需要輕松地將重要問題傳達(dá)給利益相關(guān)者
  • 需要確定任務(wù)的優(yōu)先級(jí)

帕累托圖需要具有可以用持續(xù)時(shí)間、成本或頻率進(jìn)行衡量的數(shù)據(jù)。還需要有一個(gè)數(shù)據(jù)發(fā)生的時(shí)間范圍。數(shù)據(jù)的頻率在左軸上表示,問題或其他可測(cè)量值顯示在橫軸上,以條形表示。線形圖所表示的百分比曲線在右側(cè)有一個(gè)刻度。

為了更易于理解,可以用不同的顏色突出顯示 20% 的數(shù)據(jù),或者用標(biāo)簽來表明這是需要關(guān)注的業(yè)務(wù)領(lǐng)域。

5.帕累托圖與條形圖有何不同

和最開始一樣, 帕累托圖是一種特殊的直方圖(或稱條形圖)。對(duì)于帕累托圖,條形是按從高到低的順序顯示的。對(duì)于條形圖,并沒有強(qiáng)制性地從高到低排序。條形圖常常按字母順序排序,或者按某種其他邏輯順序排序。

如下圖,就是一個(gè)直方圖的案例。

而對(duì)于帕累托圖, 應(yīng)該是這樣的:

帕累托圖還可以添加一個(gè)積累頻數(shù)線條:

6.帕累托圖的替代方案

盡管帕累托圖沒有真正的替代方案,但有一套七種基本的質(zhì)量控制工具,應(yīng)該一起使用,作為解決組織問題的整體方法的一部分:

  • 因果關(guān)系圖:找出問題的原因并將想法分為幾類
  • 檢查表:提供收集和分析數(shù)據(jù)的結(jié)構(gòu)化方法
  • 控制圖:研究過程如何隨時(shí)間變化
  • 直方圖:顯示頻率分布,例如一組數(shù)據(jù)中某個(gè)值出現(xiàn)的頻率
  • 帕累托圖:顯示因子的重要性
  • 散布圖:識(shí)別關(guān)系和模式
  • 分層:分離數(shù)據(jù)并確定模式

這些工具一起使用,構(gòu)成了確保組織質(zhì)量的基礎(chǔ)。

7.帕累托圖的好處

7.1 專注解決問題

如果在一條裝配線上有 100 種產(chǎn)品,存在一系列故障、缺陷和問題,那么組織如何知道首先要解決什么問題?帕累托圖會(huì)立即顯示最大的問題,從而顯示需要首先解決的過程或產(chǎn)品。如果一個(gè)故障部件導(dǎo)致了大部分問題,則可以很容易地確定修復(fù)的優(yōu)先級(jí)。

7.2 提供機(jī)會(huì)

雖然你可以看到缺陷和問題,但帕累托圖也可以用來識(shí)別優(yōu)勢(shì)。然后,你可以制定計(jì)劃加以利用。例如,你可以向頂級(jí)銷售人員或最佳分支機(jī)構(gòu)詢問他們的做法,進(jìn)行復(fù)制。或者,如果一個(gè)團(tuán)隊(duì)特別有效,他們的技術(shù)和方法可以在整個(gè)企業(yè)中復(fù)制。

7.3 增強(qiáng)決策能力

領(lǐng)導(dǎo)團(tuán)隊(duì)希望為自己的組織做出最佳選擇,但要了解什么會(huì)產(chǎn)生最大的影響可能很難。除了機(jī)器學(xué)習(xí)和人工智能之外,最有用的工具可能是帕累托圖??梢郧宄乜吹阶畲蟮暮锰幓騿栴}出現(xiàn)在哪里,意味著可以基于數(shù)據(jù)有效地做出有針對(duì)性的決策。

8.帕累托圖的缺點(diǎn)

8.1 沒有根本原因分析

雖然帕累托圖顯示了結(jié)果,但沒有明確的方法可以看到數(shù)據(jù)背后的原因。例如,如果一家公司的特定分支機(jī)構(gòu)表現(xiàn)良好,在圖表中就無法輕易了解為什么會(huì)出現(xiàn)這種情況。

解決方案:分析和數(shù)據(jù)完成后,需要進(jìn)行全面調(diào)查,以顯示這些結(jié)果是如何發(fā)生的。為什么分支機(jī)構(gòu)表現(xiàn)良好?為什么工廠在制造產(chǎn)品時(shí)總會(huì)弄壞某個(gè)零件?

8.2 沒有定量數(shù)據(jù)

帕累托圖純粹是定性的。沒有跡象表明缺陷或問題的嚴(yán)重性。發(fā)現(xiàn)這些信息需要對(duì)問題進(jìn)行徹底的調(diào)查和分析。

8.3 僅顯示過去的數(shù)據(jù)

帕累托圖僅顯示過去的數(shù)據(jù)。損害或問題已經(jīng)發(fā)生且無法更改。此外,無法真正預(yù)測(cè)基于這些數(shù)據(jù)所做的更改是否會(huì)產(chǎn)生所需的積極結(jié)果。例如,使用機(jī)器學(xué)習(xí)也有助于進(jìn)行預(yù)測(cè);如果你更改了 X,那么 Y 也會(huì)受到影響。

9.如何用Python創(chuàng)建帕累托圖

9.1 數(shù)據(jù)源

下面這個(gè)代碼是使用Excel作為數(shù)據(jù)文件,文件名為:data.xlsx

數(shù)據(jù)文件的內(nèi)容如下:放在第一個(gè)工作表的第一個(gè)A1單元格開始即可。

categoryvalue
工資待遇與福利水平較差90
公司發(fā)展前景與預(yù)期落差大40
激勵(lì)機(jī)制較差38
晉升機(jī)會(huì)少35
當(dāng)前職業(yè)無法發(fā)揮個(gè)人專長30
工作壓力較大28
工作缺少成就感26
上級(jí)處事方式較差25
工作氛圍較差16
公司地理位置不便13
職業(yè)發(fā)展方向變化12
個(gè)人創(chuàng)業(yè)或繼續(xù)求學(xué)深造11
其它10
個(gè)人家庭原因9
個(gè)人身體原因5

9.2 源代碼

# 用于命名和保存圖片文件
import os
from datetime import datetime


import matplotlib.font_manager as fm  # 管理字體工具
import matplotlib.pyplot as plt  # 繪圖包
import pandas as pd # 讀取Excel數(shù)據(jù)

# 設(shè)置字體
font_path = 'C:/Windows/Fonts/simhei.ttf'  # 字體文件路徑
font_prop = fm.FontProperties(fname=font_path, size=12)  # 字體屬性
plt.rcParams['font.family'] = font_prop.get_name()

# 讀取Excel數(shù)據(jù)
df = pd.read_excel('data.xlsx')

# 建立數(shù)據(jù)category和標(biāo)識(shí)符的對(duì)應(yīng)關(guān)系
category_dict = {}
for i, category in enumerate(df['category'].unique()):
    category_dict[category] = chr(65 + i)
    df['category'] = df['category'].replace(category, chr(65 + i))

# 按照數(shù)量降序排列
df = df.sort_values(by='value', ascending=False)

# 計(jì)算累計(jì)百分比
df['cumulative_percentage'] = df['value'].cumsum() / df['value'].sum() * 100

# 繪制帕累托圖
fig, ax1 = plt.subplots(figsize=(8, 10))

# 判斷是否有小于80%的數(shù)據(jù)
if df['cumulative_percentage'].min() < 80:
    # 將小于80%的數(shù)據(jù)用紅色柱子表示
    ax1.bar(df[df['cumulative_percentage'] < 80].index, df[df['cumulative_percentage'] < 80]['value'], color='tab:red')
else:
    # 將第一個(gè)柱子設(shè)為紅色背景
    ax1.bar(df.index[0], df['value'][0], color='tab:red')

# 繪制其余柱子
bar_heights = ax1.bar(df.index, df['value'], color='tab:blue', alpha=0.5)
ax1.set_ylabel('數(shù)量', fontproperties=font_prop)

# 在每個(gè)柱子上方添加具體的值
for i, bar_height in enumerate(bar_heights):
    ax1.text(i, bar_height.get_height() + 0.5, str(int(bar_height.get_height())), ha='center', fontproperties=font_prop)

ax2 = ax1.twinx()
ax2.plot(df.index, df['cumulative_percentage'], color='tab:red', marker='o')
ax2.set_ylim([0, 100])
ax2.set_ylabel('累計(jì)百分比', fontproperties=font_prop)

plt.xticks(df.index, df['category'], rotation=90, fontproperties=font_prop)
plt.title('帕累托圖', fontproperties=font_prop)

# 添加A-Z和category的對(duì)應(yīng)關(guān)系
ax1.set_xticks(df.index)
ax1.set_xticklabels(df['category'], rotation=90, fontproperties=font_prop)
ax1.tick_params(axis='x', which='major', pad=15)
ax1.spines['bottom'].set_position(('axes', -0.00))
ax1.spines['bottom'].set_linewidth(0)
ax1.spines['bottom'].set_color('gray')
ax1.spines['bottom'].set_visible(True)

for i, (category, abbr) in enumerate(category_dict.items()):
    ax1.text(-1, -4 * i - 10, f'{abbr}: {category}', transform=ax1.transData, ha='left', fontproperties=font_prop,
             va='top')

# 調(diào)整子圖之間的間距和邊距
plt.subplots_adjust(bottom=0.4)

# 保存圖片
now = datetime.now().strftime('%Y%m%d%H%M%S')
filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), f'pareto_{now}.png')
plt.savefig(filename)

plt.show()

9.3 輸出結(jié)果

以上就是基于Python實(shí)現(xiàn)帕累托圖的示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python帕累托圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python實(shí)戰(zhàn)教程之自動(dòng)掃雷

    python實(shí)戰(zhàn)教程之自動(dòng)掃雷

    用python實(shí)現(xiàn)掃雷,非常有意思,這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)自動(dòng)掃雷的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解

    Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解

    這篇文章主要介紹了Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 使用Keras 實(shí)現(xiàn)查看model weights .h5 文件的內(nèi)容

    使用Keras 實(shí)現(xiàn)查看model weights .h5 文件的內(nèi)容

    這篇文章主要介紹了使用Keras 實(shí)現(xiàn)查看model weights .h5 文件的內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python如何實(shí)現(xiàn)MySQL實(shí)例初始化詳解

    Python如何實(shí)現(xiàn)MySQL實(shí)例初始化詳解

    這篇文章主要給大家介紹了關(guān)于Python如何實(shí)現(xiàn)MySQL實(shí)例初始化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    這篇文章主要為大家詳細(xì)介紹了使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考一下
    2024-02-02
  • 詳解Python中Addict模塊的使用方法

    詳解Python中Addict模塊的使用方法

    Addit是一個(gè)Python模塊,除了提供標(biāo)準(zhǔn)的字典語法外,Addit 生成的字典的值既可以使用屬性來獲取,也可以使用屬性進(jìn)行設(shè)置。本文將詳細(xì)講講它的使用方法,需要的可以參考一下
    2022-05-05
  • Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行

    Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行

    本文主要介紹了Python中.py程序在CMD控制臺(tái)以指定虛擬環(huán)境運(yùn)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python實(shí)戰(zhàn)之ATM取款機(jī)的實(shí)現(xiàn)

    Python實(shí)戰(zhàn)之ATM取款機(jī)的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言模擬實(shí)現(xiàn)ATM取款機(jī)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09
  • 解決pycharm無法刪除invalid interpreter(無效解析器)的問題

    解決pycharm無法刪除invalid interpreter(無效解析器)的問題

    這篇文章主要介紹了pycharm無法刪除invalid interpreter(無效解析器)的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • unittest+coverage單元測(cè)試代碼覆蓋操作實(shí)例詳解

    unittest+coverage單元測(cè)試代碼覆蓋操作實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了unittest+coverage單元測(cè)試代碼覆蓋操作的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論