《Python數據可視化之Matplotlib與Pyecharts》之主題河流圖

11.7.2  不同類型商品銷售情況分析

爲了分析該企業不同類型商品的銷售額情況,繪製了不同商品銷售額的主題河流圖,Python代碼如下:

# -*- coding: utf-8 -*-

# -*- 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 Page, ThemeRiver

from impala.dbapi import connect

 

#連接Hadoop數據庫

conn = connect(host='192.168.1.7', port=10000, database='sales',auth_mechanism='NOSASL',user='root')

cursor = conn.cursor()

 

#讀取Hadoop表數據

sql_num = "SELECT order_date,ROUND(SUM(sales),2),category FROM orders WHERE order_date>='2019-10-01' and order_date<='2019-10-31' GROUP BY category,order_date"

cursor.execute(sql_num)

sh = cursor.fetchall()

v1 = []

v2 = []

for s in sh:

  v1.append([s[0],s[1],s[2]])

  

#畫主題河流圖

def themeriver() -> ThemeRiver:

    c = (

        ThemeRiver()

        .add(

            ["辦公用品","傢俱","技術"],

            v1,

            singleaxis_opts=opts.SingleAxisOpts(type_="time", pos_bottom="10%"),

        )

        .set_global_opts(title_opts=opts.TitleOpts(title="不同類型商品銷售額比較分析", subtitle="2019年企業經營狀況"),

                         toolbox_opts=opts.ToolboxOpts(),

                         legend_opts=opts.LegendOpts(is_show=True)

                        )

    )

    return c

 

#第一次渲染時候調用load_javasrcript文件

themeriver().load_javascript()

#展示數據可視化圖表

themeriver().render_notebook()

在Jupyter lab中運行上述代碼,生成如圖11-7所示的主題河流圖。

圖11-7  主題河流圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章