01 matplotlib可视化 餐饮订单例子实践
以某餐饮企业的订单详情表数据为可视化对象,分析一下内容:
- 销售额随时间的变化情况
- 销售额与星期的关系
- 订单数量与销售额的关系
其中:
dishes_name: 菜品名称
counts: 菜品数量
amounts: 菜品单价
order_id:订单号
place_order_time: 下单时间
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
from pymysql import connect
import warnings
import matplotlib.pyplot as plt
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
#指定默认字体
plt.rcParams['axes.unicode_minus'] = False
#解决保存图像时负号’-’显示为方块的问题
con = create_engine('mysql+pymysql://root:12345678@127.0.0.1:3306/test?charset=utf8')
print(con)
Engine(mysql+pymysql://root:***@127.0.0.1:3306/test?charset=utf8)
tmp1 = pd.read_sql('meal_order_detail1', con=con)
tmp2 = pd.read_sql('meal_order_detail2', con=con)
tmp3 = pd.read_sql('meal_order_detail3', con=con)
# pd.read_sql('select * from meal_order_detail1', con=con)
print(tmp1.shape)
(2779, 19)
data = pd.concat([tmp1, tmp2, tmp3], axis=0) # 数据合并
data.shape
(10037, 19)
data.columns
Index(['detail_id', 'order_id', 'dishes_id', 'logicprn_name',
'parent_class_name', 'dishes_name', 'itemis_add', 'counts', 'amounts',
'cost', 'place_order_time', 'discount_amt', 'discount_reason',
'kick_back', 'add_inprice', 'add_info', 'bar_code', 'picture_file',
'emp_id'],
dtype='object')
# 计算收入
data['price'