贡献度分析(帕累托图)

帕累托法则 :又称20/80法则,同样的投入放在不同的地方会产生不同的效益。
比如一个公司80%的利润常常来自于20%的产品。
使用贡献度分析来分析获利最高的80%的产品。

from __future__ import print_function
import pandas as pd

dish_profit ='C:/Users/Administrator/Desktop/works/chapter3/demo/data/catering_dish_profit.xls'
data = pd.read_excel(dish_profit,index_col = u'菜品名')
data = data[u'盈利'].copy()
data.sort_values(ascending = False)


import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示正负号

plt.figure()#创建一个图形实例,传入图形实例的参数。这个图形实例会和pylab接口相关联
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], '.2%'),xy = (6,p[6]),xytext = (6*0.9,p[6]*0.9),arrowprops = dict(arrowstyle = "->",connectionstyle = "arc3,rad=.2"))
plt.ylabel(u'盈利(比例)')  
下载.png

一点tips:

plt.annotate()

为图表添加注释。

添加注释
第一个参数是注释的内容
xy设置箭头尖的坐标(传入一个元组)
xytext设置注释内容显示的起始位置(传入一个元组)
arrowprops 用来设置箭头

facecolor 设置箭头的颜色
headlength 箭头的头的长度
headwidth 箭头的宽度
width 箭身的宽度

plt.annotate(format(p[6], '.2%'),xy = (6,p[6]),xytext = (6*0.9,p[6]*0.9),arrowprops = dict(arrowstyle = "->",connectionstyle = "arc3,rad=.2"))

更加具体的参数见这里

你可能感兴趣的:(贡献度分析(帕累托图))