IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 文本模式打印彩色直方统计图 -> 正文阅读

[Python知识库]文本模式打印彩色直方统计图



文本模式
打印彩色统计直方图
(\033[m\033[0m实现和自码工具实现)


目?录


??今天刷CSDN看到大佬博文,学到了以文本的方式,打印统计直方图。喜不自胜,特在这里叨叨。🤗
??数据说明:直方图数据为random.choices()随机取样,不是真实数据,仅方便讲述“直方图”打印。


回页首

print(chr(9632))

??“■”符号来填充统计图的直方,编码为“9632”。


def demo():
    print()
    print(' 编程语言热度统计 '.center(42, '~'))
    shuffle(nums)
    data = choices(nums, k=6)
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
        print(f"\n{k}:{chr(9632)*i}{i:>3}")
    
    print('~'*50)

不齐整图在这里插入图片描述

??不齐整,不好看啊😱


回页首

齐整统计图


        print(f"\n{k:>10}:{chr(9632)*i}{i:>3}")

??修改打印编程语言名称字符对齐方式为右对齐。(本示例统计的编程语言名称最大最大字符数为10,所以在10的宽度内右对齐。)

整齐图
在这里插入图片描述

??没颜色,不好看……


回页首

彩色统计图

??试试加色😋


    print(f"\033[32m{chr(9632)}\033[0m"*29)
    print(f"\033[90m{chr(9632)}\033[0m"*36)
    print(f"\033[92m{chr(9632)}\033[0m"*50)

彩方条图
在这里插入图片描述

??可以有色打印彩条,修改前面的代码试试。😜😜


def demo_color():
    ''' 直方图彩条打印 '''
    print() # 打印空行。
    print(' \033[91m编程语言热度统计\033[0m '.center(51, '~')) # 高亮红色打印表题。
    shuffle(nums) # 打乱数据数组。
    data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
    colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
        shuffle(colors) # 打乱前景色编码列表。
        color = choices(colors, k=1)[0] # 随机选择一个前景色。
        print(f"\n{k:>10}:\033[{color}m{chr(9632)*i}\033[0m{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
    
    print('~'*50) # 打印结束分割线。

彩条直方图
在这里插入图片描述


回页首

自码工具实现彩色统计图

??哈哈😄,实现了随机前景色的直方彩色统计图打印。
??当然,也可以用我前面自码工具mypycolor.py实现,代码更易读明了。代码如下——


from lib.mypycolor import Color
set_color = Color().set_color


def demo_color2():
    ''' 直方图彩条打印 '''
    print() # 打印空行。
    print((set_color(' 编程语言热度统计 ', 91)).center(51, '~')) # 高亮红色打印表题。
    shuffle(nums) # 打乱数据数组。
    data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
    colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
        shuffle(colors) # 打乱前景色编码列表。
        color = choices(colors, k=1)[0] # 随机选择一个前景色。
        print(f"\n{k:>10}:{set_color(chr(9632)*i, color)}{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
    
    print('~'*50) # 打印结束分割线。

效果图
在这里插入图片描述


回页首

完整Python代码跳过源码

#!/sur/bin/nve python
# coding: utf-8

'''
文本模式打印统计直方图

Author:梦幻精灵_cq

date:2022-09-25
'''

from random import choices
from random import shuffle


def demo():
    print()
    print(' 编程语言热度统计 '.center(42, '~'))
    shuffle(nums)
    data = choices(nums, k=6)
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
        print(f"\n{k:>10}:{chr(9632)*i}{i:>3}")
    
    print('~'*50)


def demo_color():
    ''' 直方图彩条打印 '''
    print() # 打印空行。
    print(' \033[91m编程语言热度统计\033[0m '.center(51, '~')) # 高亮红色打印表题。
    shuffle(nums) # 打乱数据数组。
    data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
    colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
        shuffle(colors) # 打乱前景色编码列表。
        color = choices(colors, k=1)[0] # 随机选择一个前景色。
        print(f"\n{k:>10}:\033[{color}m{chr(9632)*i}\033[0m{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
    
    print('~'*50) # 打印结束分割线。


from lib.mypycolor import Color
set_color = Color().set_color


def demo_color2():
    ''' 直方图彩条打印 '''
    print() # 打印空行。
    print((set_color(' 编程语言热度统计 ', 91)).center(51, '~')) # 高亮红色打印表题。
    shuffle(nums) # 打乱数据数组。
    data = choices(nums, k=6) # 从数据数组中随机选择6个元素。
    colors = list(range(31, 38)) + list(range(90, 98)) # 前景色编码列表。由于Python终端默认黑色背景,所以列表不含“31”黑色编码。
    
    for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data): # 遍历随机选择的6个元素。
        shuffle(colors) # 打乱前景色编码列表。
        color = choices(colors, k=1)[0] # 随机选择一个前景色。
        print(f"\n{k:>10}:{set_color(chr(9632)*i, color)}{i:>3}") # 以随机选择的前景色打印当前遍历到的数据直方图条。
    
    print('~'*50) # 打印结束分割线。


if __name__ == '__main__':
    nums = list(range(36)) # 设置随机取样范围
    demo() # 调用函数打印直方图
    demo_color() # 调用函数打印彩色直方图
    demo_color2() # 调用函数打印彩色直方图(自码工具mypycolor实现)
    print() # 打印空行


回页首

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:49:11  更:2022-09-30 00:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 18:51:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码