数据分析第一周作业


#
代码3-3 捞起生鱼片的季度销售情况 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']) # 读取数据 print(data) print(data.describe(),data.describe().max()-data.describe().min()) 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('sale分层').agg({'sale':'count'}) pAggResult = round(aggResult/aggResult.sum(), 2, ) * 100 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() #'fliers'即为异常值的标签 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]))) else: plt.annotate(y[i],xy=(x[i],y[i]),xytext=(x[i]+0.08,y[i])) plt.title('箱线图 3055郑佰强') plt.show() plt.figure(figsize=(10,6)) # 设置图框大小尺寸 pAggResult['sale'].plot(kind='bar',width=0.8,fontsize=10) # 绘制频率直方图 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.title('季度销售额频率分布直方图 3055郑佰强',fontsize=20) plt.show()
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理
它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后,
连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。
 频率直方图(frequency histogram)亦称频率分布直方图统计学中表示频率分布图形。在直角坐标系中,用横轴表示随机变量的取值,横轴上的每个小区间对应一个组的组距,作为小矩形的底边;纵轴表示频率与组距的比值,并用它作小矩形的高,以这种小矩形构成的一组图称为频率直方图。
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'])  # 读取数据,指定“日期”列为索引
print(data.describe())
bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
labels = ['A_lei','[500,1000)','[1000,1500)','[1500,2000)',
       '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)'] 
data['sale分层'] = pd.cut(data.sale, bins, labels=labels)
print(data)
aggResult = data.groupby('sale分层').agg({'sale':'count'})
print(aggResult)
pAggResult = round(aggResult/aggResult.sum(), 2, )
import matplotlib.pyplot as plt
plt.figure(figsize=(15,10))  # 设置图框大小尺寸
pAggResult['sale'].plot(kind='bar',width=0.1,fontsize=10)  # 绘制频率直方图
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图  3055郑佰强',fontsize=20)
plt.show()

# 代码3-4 不同菜品在某段时间的销售量的分布情况
import pandas as pd
import matplotlib.pyplot as plt
catering_dish_profit = 'D:/桌面文件/python图表/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('菜品销售量分布(饼图) 3055郑佰强')  #设置标题
plt.axis('equal')
plt.show()
#绘制条形图
x = data['菜品名']
y = data['盈利']
plt.figure(figsize=(8,4)) #设置画布大小
plt.bar(x,y)
plt.rcParams['font.sans-serif']= 'SimHei'
plt.xlabel('菜品')
plt.ylabel('销量')
plt.title('菜品销售量分布(条形图) 3055郑佰强') #设置标题
plt.show()
     

 

 

饼图英文学名为Sector Graph,又名Pie Graph。常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。
仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。
 
条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形。条形图可以横置或纵置,纵置时也称为柱形图(column chart)。此外,条形图有简单条形图、复式条形图等形式
#部门之间销售金额比较
import pandas as pd
import matplotlib.pyplot as plt 
data=pd.read_excel("D:/桌面文件/python图表/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('销售额(万元)') 
print('                 部门之间销售金额比较 3055郑佰强')
plt.show() 

# B 部门各年份之间销售金额的比较 
data=pd.read_excel("D:/桌面文件/python图表/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('销售额(万元)') 
print('                  b部门各年份之间销售金额比较 3055郑佰强')
plt.show() 
折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。
在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,2*np.pi,50)
y = np.sin(x)
plt.plot(x,y, 'bp--')
print('          3055郑佰强') plt.show()

 

posted on 2023-02-25 22:56  什么都不会的萌新  阅读(54)  评论(0)    收藏  举报

导航