import pandas as pd catering_sale = 'D:\计算机网络\catering_sale.xls' data=pd.read_excel(catering_sale ,index_col='日期') print(data.describe())
餐饮销额数据异常值检测
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False plt.figure() p=data.boxplot(return_type='dict') x=p['fliers'][0].get_xdata() y=p['fliers'][0].get_ydata() y.sort() for i in range(len(x)): if i>0: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i])) else: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i])) plt.show()
正余弦函数绘制
from pylab import* import numpy as np x=np.arange(0,6,0.1) y1=np.sin(x) y2=np.cos(x) plt.plot(x,y1,label='sin x') plt.plot(x,y2,linestyle='--',label='cos x') plt.xlabel('X') plt.ylabel('Y') plt.title('正余弦函数(3144)') plt.legend() plt.show()
饼图绘制
labels='Frogs','Hogs','Dogs','Logs' sizes=[15,30,45,10] colors=['yellowgreen','gold','lightskyblue','lightcoral'] explode=(0,0.1,0,0) plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.lf%%',shadow=True,startangle=90) plt.axis('equal')#显示为圆 plt.title("饼图(3144)",fontsize=20) plt.show()
二维条形直方图
import numpy as np x=np.random.randn(1000) plt.hist(x,10) plt.title("二维条形直方图(3144)",fontsize=20) plt.show()
import numpy as np import pandas as pd x = np.random.randn(1000) # 1000个服从正态分布的随机数 D = pd.DataFrame([x, x+1]).T # 构造两列的DataFrame D.plot(kind = 'box') # 调用Series内置的绘图方法画图,用kind参数指定箱型图box plt.title("箱型图(3144)",fontsize=20) plt.show()
数据对比
import numpy as np import pandas as pd x=pd.Series(np.exp(np.arange(20))) plt.figure(figsize=(8,9)) axl=plt.subplot(2,1,1) x.plot(label='原始数据图',legend=True) plt.title("原始数据图(3144)",fontsize=20) axl=plt.subplot(2,1,2) x.plot(logy=True,label='对数数据图',legend=True) plt.title("对数数据图(3144)",fontsize=20) plt.show()
误差条形图
import numpy as np import pandas as pd error=np.random.randn(10) y=pd.Series(np.sin(np.arange(10))) y.plot(yerr=error) plt.title("误差条形图(3144)",fontsize=20) plt.show()
餐饮季度销售额频率分布直方图
import pandas as pd import numpy as np catering_sale = 'D:\python数据挖掘\catering_fish_congee.xls' # 餐饮数据 data = pd.read_excel(catering_sale,names=['date','sale']) # 读取数据,指定“日期”列为索引 bins = [0,500,1000,1500,2000,2500,3000,3500,4000] labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)', '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] data['sale分层'] = pd.cut(data.sale, bins, labels=labels) aggResult = data.groupby(by=['sale分层'])['sale'].agg([('sale',np.size)]) pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100 import matplotlib.pyplot as plt plt.figure(figsize=(10,6)) # 设置图框大小尺寸 pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10) # 绘制频率直方图 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.title('餐饮季度销售额频率分布直方图(3144)',fontsize=20) plt.show()
菜品销售量分布饼图
import pandas as pd import matplotlib.pyplot as plt catering_dish_profit='D:\python数据挖掘\data\catering_dish_profit.xls' #餐饮数据 data=pd.read_excel(catering_dish_profit) #读取数据 #绘制饼图 x=data['盈利'] labels=data['菜品名'] plt.figure(figsize=(8,6)) #设置画布大小 plt.pie(x,labels=labels) #绘制画饼 plt.rcParams['font.sans-serif'] = 'SimHei' plt.title('菜品销售量分布饼图(3144)') #设置标题 plt.axis('equal') plt.show()
不同部门各月份的销售对比情况
import pandas as pd import matplotlib.pyplot as plt data=pd.read_excel("D:\python数据挖掘\data\dish_sale.xls") plt.figure(figsize=(8,4)) plt.plot(data['月份'],data['A部门'],color='green',label='A部门',marker='o') plt.plot(data['月份'],data['B部门'],color='red',label='B部门',marker='s') plt.plot(data['月份'],data['C部门'],color='skyblue',label='C部门',marker='x') plt.legend() #显示图例 plt.ylabel('销售额(万元)') plt.title('不同部门各月份的销售对比情况(3144)') plt.show() #B部门各年份之间销售金额的比较 data=pd.read_excel("D:\python数据挖掘\data\dish_sale_b.xls") plt.figure(figsize=(8,4)) plt.plot(data['月份'],data['2012年'],color='green',label='2012年',marker='o') plt.plot(data['月份'],data['2013年'],color='red',label='2013年',marker='s') plt.plot(data['月份'],data['2014年'],color='skyblue',label='2014年',marker='x') plt.legend() #显示图例 plt.ylabel('销售额(万元)') plt.title('不同部门各月份的销售对比情况(3144)') plt.show()
某单位日用电量预测分析
import pandas as pd import matplotlib.pyplot as plt df_normal = pd.read_csv("D:\python数据挖掘\data\user.csv") plt.figure(figsize=(8,4)) plt.plot(df_normal["Date"],df_normal["Eletricity"]) plt.xlabel("日期") #设置x轴刻度间隔 x_major_locator = plt.MultipleLocator(7) ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) plt.ylabel("每日电量") plt.title("正常用户电量趋势(3144)",fontsize=20) plt.rcParams['font.sans-serif']=['SimHei'] plt.show() #窃电用户用电趋势分析 df_steal = pd.read_csv("D:\python数据挖掘\data\Steal user.csv") plt.figure(figsize=(10,9)) plt.plot(df_steal["Date"],df_steal["Eletricity"]) plt.xlabel("日期") plt.ylabel("日期") x_major_locator=plt.MultipleLocator(7) ax=plt.gca() ax.xaxis.set_major_locator(x_major_locator) plt.title("窃电用户用电趋势(3144)",fontsize=20) plt.rcParams['font.sans-serif']=['SimHei'] plt.show()
菜品盈利数据帕累托图
import pandas as pd dish_profit = 'D:\python数据挖掘\data\catering_dish_profit.xls' data=pd.read_excel(dish_profit,index_col='菜品名') data=data['盈利'].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() data.plot(kind='bar') plt.ylabel('盈利(无)') 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(arrowstyle="->",connectionstyle="arc3,rad=.2"))#图上标注 plt.ylabel('盈利(比例') plt.title("菜品盈利数据帕累托图(3144)",fontsize=20) plt.rcParams['font.sans-serif']=['SimHei'] plt.show()
通过本章学习数据认识到了数据质量分析要求先对数据检测是否存在缺失值和异常值;而数据特征分析要求我们在数据挖掘建模前,通过频率分布分析、对比分析、帕累托分析、周期性分析、相关性分析等方法,对采集的样本数据的特征进行分析,以了解数据的规律和趋势,为数据挖掘的后续环节提供支持。
标签:数据分析,plot,plt,python,绘图,pd,np,import,data From: https://www.cnblogs.com/zjx15975136073/p/17158060.html