您好,登錄后才能下訂單哦!
這篇“基于Python如何實現(xiàn)帕累托圖”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“基于Python如何實現(xiàn)帕累托圖”文章吧。
帕累托圖:是一種特殊的直方圖, 在項目管理知識體系中屬于質(zhì)量管理的工具。 它可以幫助觀眾了解哪些因素對結(jié)果影響最大。它基于帕累托原則,即 80% 的結(jié)果來自 20% 的原因。該圖表有助于以圖形方式顯示此原理。
該原則也被稱為80/20 規(guī)則
、關(guān)鍵少數(shù)法則
或因子稀疏原則
。約瑟夫·朱蘭 (Joseph Juran)于 1937 年公布了這個概念,并以著名經(jīng)濟(jì)學(xué)家維爾弗雷多·帕累托的名字命名,他在 19 世紀(jì)后期首次記錄了這種現(xiàn)象。
從本質(zhì)上講,帕累托指出,在許多地方,80/20 的分布很普遍,幾乎存在于我們生活的各個方面。他最初的觀察是關(guān)于人口和財富。他發(fā)現(xiàn),意大利 80% 的土地歸 20% 的人口所有。對其他國家的調(diào)查顯示了類似的分布模式。
這種財富分配目前仍然成立。1992 年聯(lián)合國開發(fā)計劃署發(fā)布的一份報告顯示,世界 20% 的人口創(chuàng)造了世界人口收入的 80% 左右。這種極其不平等的分配存在于稅收、收入以及幾乎所有其他生活領(lǐng)域。
體育:15% 的棒球運動員創(chuàng)造了 85% 的勝利,從理論上講,這適用于所有體育項目。還有人說,20% 的訓(xùn)練方法產(chǎn)生了 80% 的收益。
計算:微軟發(fā)現(xiàn),修復(fù) 20% 最常報告的錯誤可以解決 80% 的錯誤和崩潰。這是 20% 的代碼持有 80% 的錯誤。相反,最棘手的 20% 的編碼需要開發(fā)人員 80% 的時間。
安全:職業(yè)健康與安全專業(yè)人員承認(rèn),20% 的危險導(dǎo)致 80% 的傷害。
健康和社會福利:20% 的患者使用 80% 的資源。80% 的犯罪是由 20% 的罪犯犯下的。這份清單涵蓋了所有人類屬性。
正如 80/20 規(guī)則適用于非商業(yè)領(lǐng)域的幾乎所有場景一樣,它也適用于商業(yè)環(huán)境。80% 的銷售額來自于 20% 的銷售人員。20% 的銷售和營銷活動帶來了 80% 的業(yè)績。在工廠中,80% 的缺陷是由 20% 的流程造成的。 80% 的投訴是由于 20% 的流程造成的。從本質(zhì)上講,幾乎商業(yè)所有方面都反映了這一規(guī)則,而擁有顯示數(shù)字的圖表有助于組織識別和解決問題。
基本上,如果知道 20% 的東西會產(chǎn)生最積極的結(jié)果,就可以向其中投入更多的資源,而不是把時間、精力和金錢浪費在對組織沒有幫助的事情上。如果帕累托圖顯示 80% 的業(yè)務(wù)來自 Facebook 廣告,您就知道應(yīng)該把精力集中在哪里。
帕累托圖在以下情況下是理想的選擇:
您需要輕松地將重要問題傳達(dá)給利益相關(guān)者
需要確定任務(wù)的優(yōu)先級
帕累托圖需要具有可以用持續(xù)時間、成本或頻率進(jìn)行衡量的數(shù)據(jù)。還需要有一個數(shù)據(jù)發(fā)生的時間范圍。數(shù)據(jù)的頻率在左軸上表示,問題或其他可測量值顯示在橫軸上,以條形表示。線形圖所表示的百分比曲線在右側(cè)有一個刻度。
為了更易于理解,可以用不同的顏色突出顯示 20% 的數(shù)據(jù),或者用標(biāo)簽來表明這是需要關(guān)注的業(yè)務(wù)領(lǐng)域。
和最開始一樣, 帕累托圖是一種特殊的直方圖(或稱條形圖)。對于帕累托圖,條形是按從高到低的順序顯示的。對于條形圖,并沒有強(qiáng)制性地從高到低排序。條形圖常常按字母順序排序,或者按某種其他邏輯順序排序。
如下圖,就是一個直方圖的案例。
而對于帕累托圖, 應(yīng)該是這樣的:
帕累托圖還可以添加一個積累頻數(shù)線條:
盡管帕累托圖沒有真正的替代方案,但有一套七種基本的質(zhì)量控制工具,應(yīng)該一起使用,作為解決組織問題的整體方法的一部分:
因果關(guān)系圖:找出問題的原因并將想法分為幾類
檢查表:提供收集和分析數(shù)據(jù)的結(jié)構(gòu)化方法
控制圖:研究過程如何隨時間變化
直方圖:顯示頻率分布,例如一組數(shù)據(jù)中某個值出現(xiàn)的頻率
帕累托圖:顯示因子的重要性
散布圖:識別關(guān)系和模式
分層:分離數(shù)據(jù)并確定模式
這些工具一起使用,構(gòu)成了確保組織質(zhì)量的基礎(chǔ)。
如果在一條裝配線上有 100 種產(chǎn)品,存在一系列故障、缺陷和問題,那么組織如何知道首先要解決什么問題?帕累托圖會立即顯示最大的問題,從而顯示需要首先解決的過程或產(chǎn)品。如果一個故障部件導(dǎo)致了大部分問題,則可以很容易地確定修復(fù)的優(yōu)先級。
雖然你可以看到缺陷和問題,但帕累托圖也可以用來識別優(yōu)勢。然后,你可以制定計劃加以利用。例如,你可以向頂級銷售人員或最佳分支機(jī)構(gòu)詢問他們的做法,進(jìn)行復(fù)制。或者,如果一個團(tuán)隊特別有效,他們的技術(shù)和方法可以在整個企業(yè)中復(fù)制。
領(lǐng)導(dǎo)團(tuán)隊希望為自己的組織做出最佳選擇,但要了解什么會產(chǎn)生最大的影響可能很難。除了機(jī)器學(xué)習(xí)和人工智能之外,最有用的工具可能是帕累托圖??梢郧宄乜吹阶畲蟮暮锰幓騿栴}出現(xiàn)在哪里,意味著可以基于數(shù)據(jù)有效地做出有針對性的決策。
雖然帕累托圖顯示了結(jié)果,但沒有明確的方法可以看到數(shù)據(jù)背后的原因。例如,如果一家公司的特定分支機(jī)構(gòu)表現(xiàn)良好,在圖表中就無法輕易了解為什么會出現(xiàn)這種情況。
解決方案:分析和數(shù)據(jù)完成后,需要進(jìn)行全面調(diào)查,以顯示這些結(jié)果是如何發(fā)生的。為什么分支機(jī)構(gòu)表現(xiàn)良好?為什么工廠在制造產(chǎn)品時總會弄壞某個零件?
帕累托圖純粹是定性的。沒有跡象表明缺陷或問題的嚴(yán)重性。發(fā)現(xiàn)這些信息需要對問題進(jìn)行徹底的調(diào)查和分析。
帕累托圖僅顯示過去的數(shù)據(jù)。損害或問題已經(jīng)發(fā)生且無法更改。此外,無法真正預(yù)測基于這些數(shù)據(jù)所做的更改是否會產(chǎn)生所需的積極結(jié)果。例如,使用機(jī)器學(xué)習(xí)也有助于進(jìn)行預(yù)測;如果你更改了 X,那么 Y 也會受到影響。
下面這個代碼是使用Excel作為數(shù)據(jù)文件,文件名為:data.xlsx
數(shù)據(jù)文件的內(nèi)容如下:放在第一個工作表的第一個A1單元格開始即可。
category | value |
---|---|
工資待遇與福利水平較差 | 90 |
公司發(fā)展前景與預(yù)期落差大 | 40 |
激勵機(jī)制較差 | 38 |
晉升機(jī)會少 | 35 |
當(dāng)前職業(yè)無法發(fā)揮個人專長 | 30 |
工作壓力較大 | 28 |
工作缺少成就感 | 26 |
上級處事方式較差 | 25 |
工作氛圍較差 | 16 |
公司地理位置不便 | 13 |
職業(yè)發(fā)展方向變化 | 12 |
個人創(chuàng)業(yè)或繼續(xù)求學(xué)深造 | 11 |
其它 | 10 |
個人家庭原因 | 9 |
個人身體原因 | 5 |
# 用于命名和保存圖片文件 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)識符的對應(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) # 計算累計百分比 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: # 將第一個柱子設(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) # 在每個柱子上方添加具體的值 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('累計百分比', fontproperties=font_prop) plt.xticks(df.index, df['category'], rotation=90, fontproperties=font_prop) plt.title('帕累托圖', fontproperties=font_prop) # 添加A-Z和category的對應(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()
以上就是關(guān)于“基于Python如何實現(xiàn)帕累托圖”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。