10.2.1 条形图及其参数配置
条形图是一种把连续数据画成数据条的表现形式,通过比较不同组的条形长度,从而对比不同组的数据量大小,描绘条形图的要素有3个:组数、组宽度、组限。绘画条形图时,不同组之间是有空隙的。条形用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。条形图亦可横向排列,或用多维方式表达。
条形图可分为垂直条和水平条。使用条形图可在各类别之间比较数据,例如客户的性别、受教育程度、购买方式等。绘制长条图时,长条柱或柱组中线须对齐项目刻度。相较之下,折线图则是将数据代表之点对齐项目刻度。在数字大且接近时,两者皆可使用波浪形省略符号,以扩大表现数据间的差距,增强理解和清晰度。
10.2.2 各省市商品订单数量分析
为了分析该企业在各省市商品订单数量,绘制了各个省市商品订单量的条形图,Python代码如下:
# -*- coding: utf-8 -*-
#声明Notebook类型,必须在引入pyecharts.charts等模块前声明
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts import options as opts
from pyecharts.charts import Bar, Page
from impala.dbapi import connect
#提取Hadoop集群数据
v1 = []
v2 = []
conn = connect(host='192.168.1.7', port=10000, database='sales',auth_mechanism='NOSASL', user='root')
cur = conn.cursor()
sql_num = "select province,count(cust_id) from orders group by province"
cur.execute(sql_num)
sh = cur.fetchall()
for s in sh:
v2.append(s[1])
v1.append(s[0])
#条形图形参数配置
def bar_base() -> Bar:
c = (
Bar()
.add_xaxis(v1,)
.add_yaxis("客户订单量", v2)
.set_global_opts(title_opts=opts.TitleOpts(title="2019年客户订单量区域分布"),
toolbox_opts=opts.ToolboxOpts(),
legend_opts=opts.LegendOpts(is_show=True))
)
return c
#第一次渲染时候调用load_javasrcript文件
bar_base().load_javascript()
#展示数据可视化图表
bar_base().render_notebook()
在Jupyter lab中运行上述代码,生成如图10-2所示的客户数量在各个省市的条形图。
图10-2 各省市客户订单量