python数据分析画图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path='./data/catering_sale.xls'
data = pd.read_excel(path, index_col = u'日期')  # 读取数据,指定“日期”列为索引列
data
#查看数据
print(data.describe())
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()
plt.title('2019320143321魏沛然')
y.sort() #从小到大排序,该方法直接改变原对象

 

 

 

path1='./data/catering_fish_congee.xls' #餐饮数据
data1=pd.read_excel(path1,names=['data','sale'])
data1
#频率分布直方图
num_bins = round((max(data1['sale']) - min(data1['sale'])) / 200)  # 计算组数
plt.figure(figsize=(10,6))  # 设置图框大小尺寸
plt.hist(data1['sale'], num_bins)
plt.xticks(range(0, 4000, 200))
plt.xlabel('sale分层')
plt.grid()
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('季度销售额频率分布直方图 2019320143321魏沛然',fontsize=15)
plt.show()

 

 

 

path2='./data/catering_dish_profit(1).xls'
data2=pd.read_excel(path2)

data2
#绘制饼图
x=data2['盈利']
labels=data2['菜品名']
plt.figure(figsize=(10,8))
plt.pie(x,labels=labels)
plt.title('菜品销售量分布(饼图) 2019320143321魏沛然')  # 设置标题
plt.axis('equal')
plt.show()

#条形图
x1=data2['菜品名']
y1=data2['盈利']
plt.figure(figsize=(10,8))
plt.bar(x1,y1)
plt.title('菜品销量发布 2019320143321魏沛然')
plt.show()

 

 

 

 

 

 

 

path3='./data/dish_sale(1).xls'
data3=pd.read_excel(path3)
plt.figure(figsize=(10, 8))
plt.plot(data3['月份'], data3['A部门'], color='yellow', label='A部门',marker='o')
plt.plot(data3['月份'], data3['B部门'], color='red', label='B部门',marker='s')
plt.plot(data3['月份'], data3['C部门'],  color='skyblue', label='C部门',marker='x')
plt.show()

 

 

import seaborn as sns
# 餐饮销量数据统计量分析

catering_sale ='./data/catering_sale.xls'  # 餐饮数据
data4 = pd.read_excel(catering_sale, index_col = '日期')  # 读取数据,指定“日期”列为索引列
data4 = data4[(data4['销量'] > 400)&(data4['销量'] < 5000)]  # 过滤异常数据
statistics = data4.describe()  # 保存基本统计量

statistics.loc['range'] = statistics.loc['max']-statistics.loc['min']  # 极差
statistics.loc['var'] = statistics.loc['std']/statistics.loc['mean']  # 变异系数
statistics.loc['dis'] = statistics.loc['75%']-statistics.loc['25%']  # 四分位数间距

print(statistics)



# 菜品盈利数据 帕累托图

# 初始化参数
dish_profit='./data/catering_dish_profit(1).xls'
data5 = pd.read_excel(dish_profit, index_col = '菜品名')
data5 = data5['盈利'].copy()
data5.sort_values(ascending = False)

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

plt.figure()
data5.plot(kind='bar')
plt.ylabel('盈利(元)')
p = 1.0*data5.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"))  # 添加注释,即85%处的标记。这里包括了指定箭头样式。
plt.ylabel('盈利(比例)')
plt.show()


# 代码3-9 餐饮销量数据相关性分析

# 餐饮销量数据相关性分析
import pandas as pd

catering_sale = './data/catering_sale_all.xls'  # 餐饮数据,含有其他属性
data6 = pd.read_excel(catering_sale, index_col = '日期')  # 读取数据,指定“日期”列为索引列
sns.heatmap(data6.corr())
plt.title('2019320143321魏沛然')
print(data6.corr())  # 相关系数矩阵,即给出了任意两款菜式之间的相关系数
print(data6.corr()['百合酱蒸凤爪'])  # 只显示“百合酱蒸凤爪”与其他菜式的相关系数
# 计算“百合酱蒸凤爪”与“翡翠蒸香茜饺”的相关系数
print(data6['百合酱蒸凤爪'].corr(data6['翡翠蒸香茜饺']))

 

 

 

 

 

 

 

posted @ 2023-02-26 20:18  小魏子~  阅读(45)  评论(0)    收藏  举报