python使用DebugInfo模塊打印一個條形堆積圖
背景
今天介紹一個不使用 matplot,通過 DebugInfo模塊打印條形堆積圖 的方法。
引入模塊
pip install DebugInfo
打印銷售轉化數據
下面的代碼構建了兩個銷售團隊,團隊A 和團隊B;兩個團隊的銷售數據構成了公司總的銷售成果。以條形堆積圖的方式展示兩個銷售團隊的成果。
# -*- coding:UTF-8 -*-
# region 引入調試模塊
import random
from DebugInfo.DebugInfo import *
# endregion
白板 = 調試模板()
白板.準備表格()
# 假如你已經整理完成了數據,這里是樣例數據
銷售轉化數據A隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': random.randrange(80, 90),
'加購物車': random.randrange(75, 80),
'生成訂單': random.randrange(65, 74),
'提交支付': random.randrange(40, 60),
'完成支付': random.randrange(25, 40),
'售后退款': random.randrange(1, 5)}
銷售轉化數據B隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': 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隊')), '轉化率[{}/{}]'.format(紅字('A隊'), 綠字('B隊')), '備注').修飾行(青字)
# 第二行第二列打印 100 個 - 作為 100% 參考線
白板.添加一行('', '{}'.format(白板.分隔線.總長度(100).提示內容('100%參考線').修飾方法(黃字)))
# 把業(yè)務數據依次添加到表格中
for 節(jié)點 in 銷售轉化數據A隊.keys():
轉化率A隊 = int(銷售轉化數據A隊[節(jié)點] * 0.5)
轉化率B隊 = int(銷售轉化數據B隊[節(jié)點] * 0.5)
白板.添加一行(節(jié)點,
'{}{}'.format(紅字('▉' * 轉化率A隊), 綠字('▉' * 轉化率B隊)),
'{}/{}'.format(紅字('{}%'.format(轉化率A隊)), 綠字('{}%'.format(轉化率B隊))))
# 展示你的表格
白板.分隔線.總長度(白板.表格寬度()).提示內容('條形堆積圖效果演示, 轉化率對齊').修飾方法(紅字).展示()
白板.展示表格()以上代碼中,我們假設兩個銷售團隊的成果在整體團隊中的占比各 50%,對兩個團隊的數據進行歸一化處理后,打印成條形堆積圖輸出,效果如下:

轉化率值跟隨條形圖顯示
以上代碼中,我們如果將轉化率值組合在 ▉ 符號后面,則可以將轉化率值跟隨條形圖打印,代碼如下:
# -*- coding:UTF-8 -*-
# region 引入調試模塊
import random
from DebugInfo.DebugInfo import *
# endregion
白板 = 調試模板()
白板.準備表格()
# 假如你已經整理完成了數據,這里是樣例數據
銷售轉化數據A隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': random.randrange(80, 90),
'加購物車': random.randrange(75, 80),
'生成訂單': random.randrange(65, 74),
'提交支付': random.randrange(40, 60),
'完成支付': random.randrange(25, 40),
'售后退款': random.randrange(1, 5)}
銷售轉化數據B隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': 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隊')), '備注').修飾行(青字)
# 第二行第二列打印 100 個 - 作為 100% 參考線
白板.添加一行('', '{}{}/{}'.format(白板.分隔線.總長度(100).提示內容('100%參考線').修飾方法(黃字), 紅字('xxx%'), 綠字('xxx%')))
# 把業(yè)務數據依次添加到表格中
for 節(jié)點 in 銷售轉化數據A隊.keys():
轉化率A隊 = int(銷售轉化數據A隊[節(jié)點] * 0.5)
轉化率B隊 = int(銷售轉化數據B隊[節(jié)點] * 0.5)
白板.添加一行(節(jié)點,
'{}{}'.format(紅字('▉' * 轉化率A隊), 綠字('▉' * 轉化率B隊)) + ' ' +
'{}/{}'.format(紅字('{}%'.format(轉化率A隊)), 綠字('{}%'.format(轉化率B隊))))
# 展示你的表格
白板.分隔線.總長度(白板.表格寬度()).提示內容('條形堆積圖效果演示, 轉化率對齊').修飾方法(紅字).展示()
白板.展示表格()代碼輸出效果如下:

轉化率分別對齊各自條形圖
以上代碼中,我們稍加調整,即可將轉化率分別對齊到各自團隊的條形圖位置,代碼如下:
# -*- coding:UTF-8 -*-
# region 引入調試模塊
import random
from DebugInfo.DebugInfo import *
# endregion
白板 = 調試模板()
白板.準備表格()
# 假如你已經整理完成了數據,這里是樣例數據
銷售轉化數據A隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': random.randrange(80, 90),
'加購物車': random.randrange(75, 80),
'生成訂單': random.randrange(65, 74),
'提交支付': random.randrange(40, 60),
'完成支付': random.randrange(25, 40),
'售后退款': random.randrange(1, 5)}
銷售轉化數據B隊 = {'廣告曝光': random.randrange(94, 98),
'鏈接跳轉': 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隊')), '備注').修飾行(青字)
# 第二行第二列打印 100 個 - 作為 100% 參考線
白板.添加一行('', '{} {}'.format(白板.分隔線.總長度(100).提示內容('100%參考線').修飾方法(黃字), 'xxx%'))
# 把業(yè)務數據依次添加到表格中
for 節(jié)點 in 銷售轉化數據A隊.keys():
轉化率A隊 = int(銷售轉化數據A隊[節(jié)點] * 0.5)
轉化率B隊 = int(銷售轉化數據B隊[節(jié)點] * 0.5)
轉化率字符 = '|{}{}'.format(' ' * (轉化率A隊 - 1), 紅字('{}%'.format(轉化率A隊)))
轉化率字符 = '{}{}{}'.format(轉化率字符, ' ' * (轉化率B隊 - (顯示寬度(轉化率字符) - 轉化率A隊)), 綠字('{}%'.format(轉化率B隊)))
白板.添加一行(節(jié)點, '{}\n{}{}'.format(轉化率字符, 紅字('▉' * 轉化率A隊), 綠字('▉' * 轉化率B隊)))
# 展示你的表格
白板.分隔線.總長度(白板.表格寬度()).提示內容('條形堆積圖效果演示, 轉化率對齊').修飾方法(紅字).展示()
白板.展示表格()以上代碼中,我們將各團隊的轉化率數據在單獨的行中,對齊各自團隊的條形圖位置進行顯示,效果如下:

小結
以上就是今天分享的使用DebugInfo模塊輸出條形堆積圖的使用方法了,希望可以幫到大家。
到此這篇關于python 打印一個條形堆積圖的文章就介紹到這了,更多相關python 條形堆積圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳盡講述用Python的Django框架測試驅動開發(fā)的教程
這篇文章主要介紹了詳盡講述用Python的Django框架測試驅動開發(fā)的教程,主要使用TDD工具,全文介紹非常詳細,需要的朋友可以參考下2015-04-04
Python環(huán)境搭建過程從安裝到Hello World
這篇文章主要介紹了Python環(huán)境搭建過程從安裝到Hello World,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02

