帕累托图制作步骤excelpython变量贡献率排序_3.2.5 贡献度分析
贡献度分析⼜称帕累托分析,它的原理是帕累托法则,⼜称20/80定律。同样的投⼊放在不同的地⽅会产⽣不同的效益。例如,对⼀个公司来讲,80%的利润常常来⾃于20%最畅销的产品,⽽其他80%的产品只产⽣了20%的利润。
对餐饮企业来讲,应⽤贡献度分析可以重点改善某菜系盈利最⾼的前80%的菜品,或者重点发展综合影响最⾼的80%的部门。这种结果可以通过帕累托图直观地呈现出来。图3-10是海鲜系列的10个菜品A1~A10某个⽉的盈利额(已按照从⼤到⼩排序)。
由上图可知,菜品A1~A7共7个菜品,占菜品种类数的70%,总盈利额占该⽉盈利额的85.0033%。根据帕累托法则,应该增加对菜品
A1~A7的成本投⼊,减少对菜品A8~A10的投⼊以获得更⾼的盈利额。
数据详见:demo/data/catering_dish_profit.xls
其Python代码如代码清单3-3所⽰。
代码清单3-3 菜品盈利帕累托图代码
#-*- coding: utf-8 -*-
#菜品盈利数据 帕累托图
from __future__ import print_function
import pandas as pd
#初始化参数
dish_profit = '../data/catering_dish_profit.xls' #餐饮菜品盈利数据
data = pd.read_excel(dish_profit, index_col = u'菜品名')
data = data[u'盈利'].copy()
data.sort(ascending = False)
import matplotlib.pyplot as plt #导⼊图像库
plt.figure()
data.plot(kind='bar')
plt.ylabel(u'盈利(元)')
p = 1.0*data.cumsum()/data.sum()
p.plot(color = 'r', secondary_y = True, style = '-o',linewidth = 2)
plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrow,
connection)) #添加注释,即85%处的标记。这⾥包括了指定箭头样式。
plt.ylabel(u'盈利(⽐例)')
plt.show()
代码详见:demo/code/dish_pareto.py