首页 > 编程语言 >python 打印一个条形图?

python 打印一个条形图?

时间:2023-08-21 23:01:08浏览次数:40  
标签:random randrange 表格 python 白板 打印 转化率 条形图

背景

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

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

引入模块

pip install DebugInfo

打印销售转化数据

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

# -*- 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 打印一个条形图?_条形图_02

销售转化漏斗

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

# -*- 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’ 模式,根据代码中的注释,这将使得第二列的数据(即条形图列)以居中对齐的方式打印,形成漏斗图。以上代码输出效果如下:

python 打印一个条形图?_条形图_03

小结

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

标签:random,randrange,表格,python,白板,打印,转化率,条形图
From: https://blog.51cto.com/u_16227127/7180676

相关文章

  • 搭建Python⾃带静态Web服务器
    说明Python自带的静态Web服务器可以通过使用http.server模块来实现。步骤打开命令行终端,进入要作为静态文件根目录的文件夹。运行以下命令启动静态Web服务器:Python2.x版本:python-mSimpleHTTPServer<port>Python3.x版本:python-mhttp.server<port> <port>是可选参......
  • Python中的 if __name__ == “__main__“
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • python设置全局热键
    需要使用第三方库,代码如下:importtkinterastkimportkeyboarddefoutput(event):#print("Fromglobalkeystroke")print(event)root=tk.Tk()root.withdraw()keyboard.add_hotkey('ctrl+a',output,args=('Fromglobalkeystroke'......
  • 排查Python卡慢神器
    如果遇到Python正在运行中的进程卡住,找不到原因。可以试试以下工具方法,对于python就像jstack对于java一样。法一使用pystack-debugger安装方式如下:yuminstallgdbpipinstallpystack-debugger1.查看线程IDpsajx|grepgunicorn2.查看堆栈信息,确认有问题代码pystac......
  • c2工具sliver的python客户端无法修改grpc超时时间的解决办法
    业务需要,调用了很多implants来执行对应系统上的命令,但是无论怎么指定interactive.py中execute方法参数,命令执行超时时间总是30.后面通过扩展execute方法增加一个grpc超时参数后解决;具体方法如下:asyncdefexecute_ex(self,exe:str,args:List[str],output:bool,tim......
  • 轻松掌握图像处理技能,Python OpenCV库带你飞
    所有代码需要在安装了OpenCV库的Python环境中运行。1图像基础操作importcv2ascvimg=cv.imread("./img/run.png",flags=cv.IMREAD_COLOR)print(img)[[[255255255][255255255][255255255]...[255255255][255255255][255255255]]......
  • Python学习日记 2023年8月21日
    importrequestsimportosimportrefromtimeimportsleepfrombs4importBeautifulSoupurl='http://www.netbian.com/mei/'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,like......
  • Linux系统之编译安装python3
    (Linux系统之编译安装python3)一、python3介绍1.python3简介Python3是一种高级编程语言,由GuidovanRossum于2008年发布。它是Python编程语言的最新版本,是Python2的升级版本。Python3提供了很多新的功能和改进,使得程序员可以更加快速、简便地编写高质量的代码。2.python......
  • 【8月摸鱼计划】python不支持的数据类型
    python不支持的数据类型是:char、byte类型。python支持的数据类型有:文本类型:str数值类型:int,float,complex序列类型:list,tuple,range映射类型:dict集合类型:set,frozenset布尔类型:bool二进制类型:bytes,bytearray,memoryview......
  • Python学习之半角转全角
    defstrB2Q(ustring):  rstring=""  forucharinustring:    inside_code=ord(uchar)    ifinside_code==32:      inside_code=12288    elif32<=inside_code<=126:      inside_code+=65248......