學習筆記—使用python畫帕累托分布圖

 2023-12-01 阅读 24 评论 0

摘要:##模塊導入 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&#
##模塊導入
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')

效果:
在這里插入圖片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/188864.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息