python 打印一个条形图

背景

在python 中,使用 matplot 生成图表是一个很常用的方法,但在一些轻量级需求场合,例如仅做一个打印预览,或者快速查看,这些场景下调用 matplot 生成图表,略显繁琐。

今天介绍一个通过 DebugInfo 模块打印条形图的方法,简单实用。

引入模块

bash 复制代码
pip install DebugInfo

打印销售转化数据

下面的代码对一组销售转化数据 进行了条形图显示。

python 复制代码
# -*- coding:UTF-8 -*-

# region 引入调试模块
import random
from DebugInfo.DebugInfo import *

# endregion

白板 = 调试模板()
白板.准备表格()

# 假如你已经整理完成了数据, 这里是样例数据
销售转化数据 = {'广告曝光': 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)}

# 第一行作为标题
白板.添加一行('节点', '进度', '转化率', '备注').修饰行(青字)

# 第二行第二列打印 100 个 - 作为 100% 参考线
白板.添加一行('', '{}'.format(白板.分隔线.总长度(100).提示内容('100%参考线').修饰方法(黄字)))

# 把业务数据依次添加到表格中
for 节点, 转化率 in 销售转化数据.items():
    白板.添加一行(节点, '{}'.format('▉' * 转化率), 黄字('{}%'.format(转化率)))

# 展示你的表格
白板.分隔线.总长度(白板.表格宽度()).提示内容('一般条形图效果演示, 转化率对齐').修饰方法(红字).展示()
白板.展示表格()

以上代码中,我们通过将销售转化数据归一处理为百分比值,然后通过打印对应数量的 ▉ 来体数值的大小,连续打印 ▉ 在 terminal 窗口下会显示成连续的长方形。以上代码运行效果如下:

转化率值跟随条形图显示

以上代码中,我们如果将转化率值组合在 ▉ 符号后面,则可以将转化率值跟随条形图打印,代码如下:

python 复制代码
# -*- coding:UTF-8 -*-

# region 引入调试模块
import random
from DebugInfo.DebugInfo import *

# endregion

白板 = 调试模板()
白板.准备表格()

# 假如你已经整理完成了数据,这里是样例数据
销售转化数据 = {'广告曝光': 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)}

# 第一行作为标题
白板.添加一行('节点', '进度/转化率', '备注').修饰行(青字)

# 第二行第二列打印 100 个 - 作为 100% 参考线
白板.添加一行('', '{} {}'.format(白板.分隔线.总长度(100).提示内容('100%参考线').修饰方法(黄字), 黄字('xxx%')), '转化率 跟随显示在 bar 后')

# 把业务数据依次添加到表格中
for 节点, 转化率 in 销售转化数据.items():
    白板.添加一行(节点, '{} {}'.format('▉' * 转化率, 黄字('{}%'.format(转化率))))

# 展示你的表格
白板.分隔线.总长度(白板.表格宽度()).提示内容('一般条形图效果演示: 转化率跟随').修饰方法(红字).展示()
白板.展示表格()

代码输出如下:

销售转化漏斗

以上销售转化数据,只要将条形的对齐方式调整为对齐方式,即可打印一个漏斗图,代码如下:

python 复制代码
# -*- coding:UTF-8 -*-

# region 引入调试模块
import random
from DebugInfo.DebugInfo import *

# endregion

白板 = 调试模板()
白板.准备表格(对齐控制串='lc')  # 第一列 左对齐, 第二列 居中对齐, 其它未设置列默认 左对齐

# 假如你已经整理完成了数据,这里是样例数据
销售转化数据 = {'广告曝光': 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)}

# 第一行作为标题
白板.添加一行('节点', '进度', '转化率', '备注').修饰行(青字)

# 第二行第二列打印 100 个 - 作为 100% 参考线
白板.添加一行('', '{}'.format(白板.分隔线.总长度(100).提示内容('100%参考线').修饰方法(黄字)))

# 把业务数据依次添加到表格中
for 节点, 转化率 in 销售转化数据.items():
    白板.添加一行(节点, '{}'.format('▉' * 转化率), 黄字('{}%'.format(转化率)))

# 展示你的表格
白板.分隔线.总长度(白板.表格宽度()).提示内容('一般条形图/漏斗图效果演示, 转化率对齐').修饰方法(红字).展示()
白板.展示表格()

以上代码中,在准备表格时,将对齐控制串设置为 'lc' 模式,根据代码中的注释,这将使得第二列的数据(即条形图列)以居中对齐的方式打印,形成漏斗图。以上代码输出效果如下:

小结

以上就是今天分享的使用 DebugInfo模块输出条形图的使用方法了,希望可以帮到大家。

相关推荐
yannan201903137 分钟前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁17 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev19 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
好喜欢吃红柚子32 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python37 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯1 小时前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
千天夜1 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
测试界的酸菜鱼1 小时前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~1 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
放飞自我的Coder2 小时前
【python ROUGE BLEU jiaba.cut NLP常用的指标计算】
python·自然语言处理·bleu·rouge·jieba分词