python使用DebugInfo模塊打印一個(gè)條形堆積圖
背景
今天介紹一個(gè)不使用 matplot,通過(guò) 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),
'加購(gòu)物車': 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),
'加購(gòu)物車': 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(白板.分隔線.總長(zhǎng)度(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ì)))))
# 展示你的表格
白板.分隔線.總長(zhǎng)度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對(duì)齊').修飾方法(紅字).展示()
白板.展示表格()以上代碼中,我們假設(shè)兩個(gè)銷售團(tuán)隊(duì)的成果在整體團(tuán)隊(duì)中的占比各 50%,對(duì)兩個(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),
'加購(gòu)物車': 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),
'加購(gòu)物車': 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(白板.分隔線.總長(zhǎng)度(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ì)))))
# 展示你的表格
白板.分隔線.總長(zhǎng)度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對(duì)齊').修飾方法(紅字).展示()
白板.展示表格()代碼輸出效果如下:

轉(zhuǎn)化率分別對(duì)齊各自條形圖
以上代碼中,我們稍加調(diào)整,即可將轉(zhuǎn)化率分別對(duì)齊到各自團(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),
'加購(gòu)物車': 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),
'加購(gòu)物車': 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(白板.分隔線.總長(zhǎng)度(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ì))))
# 展示你的表格
白板.分隔線.總長(zhǎng)度(白板.表格寬度()).提示內(nèi)容('條形堆積圖效果演示, 轉(zhuǎn)化率對(duì)齊').修飾方法(紅字).展示()
白板.展示表格()以上代碼中,我們將各團(tuán)隊(duì)的轉(zhuǎn)化率數(shù)據(jù)在單獨(dú)的行中,對(duì)齊各自團(tuán)隊(duì)的條形圖位置進(jìn)行顯示,效果如下:

小結(jié)
以上就是今天分享的使用DebugInfo模塊輸出條形堆積圖的使用方法了,希望可以幫到大家。
到此這篇關(guān)于python 打印一個(gè)條形堆積圖的文章就介紹到這了,更多相關(guān)python 條形堆積圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 環(huán)境安裝及編輯器配置方法小結(jié)
這篇文章主要介紹了python 環(huán)境安裝及編輯器配置方法小結(jié)的相關(guān)資料,需要的朋友可以參考下2021-06-06
OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn)
今天小編就為大家分享一篇OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
詳盡講述用Python的Django框架測(cè)試驅(qū)動(dòng)開發(fā)的教程
這篇文章主要介紹了詳盡講述用Python的Django框架測(cè)試驅(qū)動(dòng)開發(fā)的教程,主要使用TDD工具,全文介紹非常詳細(xì),需要的朋友可以參考下2015-04-04
Python環(huán)境搭建過(guò)程從安裝到Hello World
這篇文章主要介紹了Python環(huán)境搭建過(guò)程從安裝到Hello World,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
對(duì)Python3中bytes和HexStr之間的轉(zhuǎn)換詳解
今天小編就為大家分享一篇對(duì)Python3中bytes和HexStr之間的轉(zhuǎn)換詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

