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