##模塊導入
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Arial Unicode MS'##防止在matplotlib中中文不顯示##數據準備
df = pd.read_csv('/Users/chenxiaogang/Desktop/data.csv',encoding = 'gb2312')
data = pd.Series(df['stastic'].values, index = df['city_name'])##將目標數據導入為series元組##數據處理
data.sort_values(ascending = False,inplace = True )##對數組進行排序,ascending 升序,inplace代表行和列的排序
p = data.cumsum()/data.sum()##cumsum:累計占比,r語言中也通用
key = p[p>0.8].index[0]##返回累計占比大于0.8的第一個索引名稱
key_num = data.index.tolist().index(key)##開始畫圖及結果輸出
plt.figure(figsize=(80,6))
data.plot(kind = 'bar', color = 'g', alpha = 0.9, width = 0.4,rot=0)##畫條形圖
p.plot(style = '--ko',secondary_y = True)##畫累計占比圖
plt.axvline(key_num,color='r',linestyle="--",alpha=0.8) ##畫紅色的虛線
plt.text(key_num+0.2,p[key]-0.05,'累計占比為:%.3f%%' % (p[key]*100), color = 'r') ##在圖上寫文本
plt.savefig('/Users/chenxiaogang/Desktop/帕累托分布練習1.png')
效果:
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态