文本模式
打印彩色统计直方图
(\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)
colors = list(range(31, 38)) + list(range(90, 98))
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
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)
colors = list(range(31, 38)) + list(range(90, 98))
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
shuffle(colors)
color = choices(colors, k=1)[0]
print(f"\n{k:>10}:{set_color(chr(9632)*i, color)}{i:>3}")
print('~'*50)
效果图
回页首
完整Python代码跳过源码
'''
文本模式打印统计直方图
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)
colors = list(range(31, 38)) + list(range(90, 98))
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
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)
colors = list(range(31, 38)) + list(range(90, 98))
for k,i in zip(('Python', 'C++', 'Go', 'Java', 'PhP', 'JavaScript'),data):
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()
print()
回页首
|