《Python数据可视化之Matplotlib与Pyecharts》之图形整合
8.6.2 区域销售额与利润额分析
由于受区域经济环境、生活环境、文化环境等的影响,电商企业的产品销售往往会呈现区域性差异,为了深入研究该企业的产品是否在2019年具有区域差异性,我们这里使用subplot函数进行可视化分析,Python代码如下:
# -*- coding: utf-8 -*-
import Matplotlib as mpl
import Matplotlib.pyplot as plt
from impala.dbapi import connect
mpl.rcParams['font.sans-serif']=['SimHei'] #显示中文
plt.rcParams['axes.unicode_minus']=False #正常显示负号
#连接Hadoop数据库
v1 = []
v2 = []
v3 = []
v4 = []
conn = connect(host='192.168.1.7', port=10000, database='sales',auth_mechanism='NOSASL',user='root')
cursor = conn.cursor()
#读取Hadoop订单表数据
sql_num = "SELECT region,ROUND(SUM(sales)/10000,2),ROUND(SUM(profit)/10000,2),ROUND(SUM(amount),2) FROM orders WHERE dt=2019 GROUP BY region"
cursor.execute(sql_num)
sh = cursor.fetchall()
for s in sh:
v1.append(s[0])
v2.append(s[1])
v3.append(s[2])
v4.append(s[3])
figure() #绘制一张图片
plt.figure(figsize=(15,8)) #设置图形大小
subplot(231)
plt.plot(v1, v2) #v1、v2的折线图
subplot(232)
plt.bar(v1, v3) #v1、v3的条形图
subplot(233)
plt.barh(v2, v3, alpha=0.5, color='red', edgecolor='red', lw=3) #v2、v3的水平条形图
subplot(234)
plt.bar(v2, v3, alpha=0.5, width=1.6, color='yellow', edgecolor='red', lw=1) #v2、v3的条形图
subplot(235)
plt.boxplot(v2) #v2的箱线图
subplot(236)
plt.scatter(v2, v3) #v2、v3的散点图
plt.suptitle('2019年区域销售额比较分析', fontsize=15)
plt.show()
在Jupyter lab中运行上述代码,生成如图所示的复合图形图,从图中可以看出:该企业在2019年,各区地区的销售额基本情况,其中华东地区的销售额最多,而利润额最多的是中南地区;销售额多利润额不一定最多,且可以看出在销售额在145万附近时,利润额是最大的;6个地区的销售额最大值大约在170万,平均值在100万左右。
图8-10 区域销售额比较