python使用DebugInfo模塊打印一個條形堆積圖
背景
今天介紹一個不使用 matplot,通過 DebugInfo模塊打印條形堆積圖 的方法。
引入模塊
pip install DebugInfo
打印銷售轉(zhuǎn)化數(shù)據(jù)
下面的代碼構(gòu)建了兩個銷售團隊,團隊A 和團隊B;兩個團隊的銷售數(shù)據(jù)構(gòu)成了公司總的銷售成果。以條形堆積圖的方式展示兩個銷售團隊的成果。
# -*- coding:UTF-8 -*- # region 引入調(diào)試模塊 import random from DebugInfo.DebugInfo import * # endregion 白板 = 調(diào)試模板() 白板.準備表格() # 假如你已經(jīng)整理完成了數(shù)據(jù),這里是樣例數(shù)據(jù) 銷售轉(zhuǎn)化數(shù)據(jù)A隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} 銷售轉(zhuǎn)化數(shù)據(jù)B隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} # 第一行作為標題 白板.添加一行('節(jié)點', '進度[{}/{}]'.format(紅字('A隊'), 綠字('B隊')), '轉(zhuǎn)化率[{}/{}]'.format(紅字('A隊'), 綠字('B隊')), '備注').修飾行(青字) # 第二行第二列打印 100 個 - 作為 100% 參考線 白板.添加一行('', '{}'.format(白板.分隔線.總長度(100).提示內(nèi)容('100%參考線').修飾方法(黃字))) # 把業(yè)務數(shù)據(jù)依次添加到表格中 for 節(jié)點 in 銷售轉(zhuǎn)化數(shù)據(jù)A隊.keys(): 轉(zhuǎn)化率A隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)A隊[節(jié)點] * 0.5) 轉(zhuǎn)化率B隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)B隊[節(jié)點] * 0.5) 白板.添加一行(節(jié)點, '{}{}'.format(紅字('▉' * 轉(zhuǎn)化率A隊), 綠字('▉' * 轉(zhuǎn)化率B隊)), '{}/{}'.format(紅字('{}%'.format(轉(zhuǎn)化率A隊)), 綠字('{}%'.format(轉(zhuǎn)化率B隊)))) # 展示你的表格 白板.分隔線.總長度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對齊').修飾方法(紅字).展示() 白板.展示表格()
以上代碼中,我們假設兩個銷售團隊的成果在整體團隊中的占比各 50%,對兩個團隊的數(shù)據(jù)進行歸一化處理后,打印成條形堆積圖輸出,效果如下:
轉(zhuǎn)化率值跟隨條形圖顯示
以上代碼中,我們?nèi)绻麑⑥D(zhuǎn)化率值組合在 ▉ 符號后面,則可以將轉(zhuǎn)化率值跟隨條形圖打印,代碼如下:
# -*- coding:UTF-8 -*- # region 引入調(diào)試模塊 import random from DebugInfo.DebugInfo import * # endregion 白板 = 調(diào)試模板() 白板.準備表格() # 假如你已經(jīng)整理完成了數(shù)據(jù),這里是樣例數(shù)據(jù) 銷售轉(zhuǎn)化數(shù)據(jù)A隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} 銷售轉(zhuǎn)化數(shù)據(jù)B隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} # 第一行作為標題 白板.添加一行('節(jié)點', '進度/轉(zhuǎn)化率[{}{}]'.format(紅字('A隊'), 綠字('B隊')), '備注').修飾行(青字) # 第二行第二列打印 100 個 - 作為 100% 參考線 白板.添加一行('', '{}{}/{}'.format(白板.分隔線.總長度(100).提示內(nèi)容('100%參考線').修飾方法(黃字), 紅字('xxx%'), 綠字('xxx%'))) # 把業(yè)務數(shù)據(jù)依次添加到表格中 for 節(jié)點 in 銷售轉(zhuǎn)化數(shù)據(jù)A隊.keys(): 轉(zhuǎn)化率A隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)A隊[節(jié)點] * 0.5) 轉(zhuǎn)化率B隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)B隊[節(jié)點] * 0.5) 白板.添加一行(節(jié)點, '{}{}'.format(紅字('▉' * 轉(zhuǎn)化率A隊), 綠字('▉' * 轉(zhuǎn)化率B隊)) + ' ' + '{}/{}'.format(紅字('{}%'.format(轉(zhuǎn)化率A隊)), 綠字('{}%'.format(轉(zhuǎn)化率B隊)))) # 展示你的表格 白板.分隔線.總長度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對齊').修飾方法(紅字).展示() 白板.展示表格()
代碼輸出效果如下:
轉(zhuǎn)化率分別對齊各自條形圖
以上代碼中,我們稍加調(diào)整,即可將轉(zhuǎn)化率分別對齊到各自團隊的條形圖位置,代碼如下:
# -*- coding:UTF-8 -*- # region 引入調(diào)試模塊 import random from DebugInfo.DebugInfo import * # endregion 白板 = 調(diào)試模板() 白板.準備表格() # 假如你已經(jīng)整理完成了數(shù)據(jù),這里是樣例數(shù)據(jù) 銷售轉(zhuǎn)化數(shù)據(jù)A隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} 銷售轉(zhuǎn)化數(shù)據(jù)B隊 = {'廣告曝光': random.randrange(94, 98), '鏈接跳轉(zhuǎn)': random.randrange(80, 90), '加購物車': random.randrange(75, 80), '生成訂單': random.randrange(65, 74), '提交支付': random.randrange(40, 60), '完成支付': random.randrange(25, 40), '售后退款': random.randrange(1, 5)} # 第一行作為標題 白板.添加一行('節(jié)點', '進度/轉(zhuǎn)化率[{}{}]'.format(紅字('A隊'), 綠字('B隊')), '備注').修飾行(青字) # 第二行第二列打印 100 個 - 作為 100% 參考線 白板.添加一行('', '{} {}'.format(白板.分隔線.總長度(100).提示內(nèi)容('100%參考線').修飾方法(黃字), 'xxx%')) # 把業(yè)務數(shù)據(jù)依次添加到表格中 for 節(jié)點 in 銷售轉(zhuǎn)化數(shù)據(jù)A隊.keys(): 轉(zhuǎn)化率A隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)A隊[節(jié)點] * 0.5) 轉(zhuǎn)化率B隊 = int(銷售轉(zhuǎn)化數(shù)據(jù)B隊[節(jié)點] * 0.5) 轉(zhuǎn)化率字符 = '|{}{}'.format(' ' * (轉(zhuǎn)化率A隊 - 1), 紅字('{}%'.format(轉(zhuǎn)化率A隊))) 轉(zhuǎn)化率字符 = '{}{}{}'.format(轉(zhuǎn)化率字符, ' ' * (轉(zhuǎn)化率B隊 - (顯示寬度(轉(zhuǎn)化率字符) - 轉(zhuǎn)化率A隊)), 綠字('{}%'.format(轉(zhuǎn)化率B隊))) 白板.添加一行(節(jié)點, '{}\n{}{}'.format(轉(zhuǎn)化率字符, 紅字('▉' * 轉(zhuǎn)化率A隊), 綠字('▉' * 轉(zhuǎn)化率B隊))) # 展示你的表格 白板.分隔線.總長度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對齊').修飾方法(紅字).展示() 白板.展示表格()
以上代碼中,我們將各團隊的轉(zhuǎn)化率數(shù)據(jù)在單獨的行中,對齊各自團隊的條形圖位置進行顯示,效果如下:
小結(jié)
以上就是今天分享的使用DebugInfo模塊輸出條形堆積圖的使用方法了,希望可以幫到大家。
到此這篇關于python 打印一個條形堆積圖的文章就介紹到這了,更多相關python 條形堆積圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python爬取之json、pickle與shelve庫的深入講解
這篇文章主要給大家介紹了關于python爬取之json、pickle與shelve庫的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03Python 對象序列化與反序列化之pickle json詳細解析
我們知道在Python中,一切皆為對象,實例是對象,類是對象,元類也是對象。本文正是要聊聊如何將這些對象有效地保存起來,以供后續(xù)使用2021-09-09分析Python中設計模式之Decorator裝飾器模式的要點
這篇文章主要介紹了Python中設計模式之Decorator裝飾器模式模式,文中詳細地講解了裝飾對象的相關加鎖問題,需要的朋友可以參考下2016-03-03簡單了解python的break、continue、pass
這篇文章主要介紹了簡單了解python的break、continue、pass,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07OpenCV MediaPipe實現(xiàn)顏值打分功能
這篇文章主要介紹了通過OpenCV MediaPipe實現(xiàn)攝像頭實時檢測顏值打分功能,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,感興趣的可以了解一下2021-12-12python中的decimal類型轉(zhuǎn)換實例詳解
decimal 模塊實現(xiàn)了定點和浮點算術運算符,使用的是大多數(shù)人所熟悉的模型,而不是程序員熟悉的模型,即大多數(shù)計算機硬件實現(xiàn)的 IEEE 浮點數(shù)運算。這篇文章主要介紹了python里的decimal類型轉(zhuǎn)換,需要的朋友可以參考下2019-06-06