本文来源吾爱破解论坛
本帖最后由 英雄无用武之地 于 2020-1-26 21:28 编辑
Python写的横式条形图的实现,纵式条形图的实现。供大家学习参考。
直接上代码:
1.横式条形图的实现:
[Python] 纯文本查看 复制代码
第一种: chart = [['alibaba', 4580], ['amazon', 9628], ['apple', 11331], ['oracle', 2053]] hchartall = 300 # 数据单位长度参数 mark = '$' # 条形图填充字符为'$' # mark=chr(0x25a0) # 条形图填充字符为方块 horiz = [] # 横式二维列表 for item in chart: # 遍历列表,转换量化数据为二维列表 hchartwid = int(item[1] / hchartall) # 获得条形图量化数据 horiz.append(item[0].ljust(8) +hchartwid * mark) # 转换为二维列表 for item in horiz: # 遍历输出条形图 print( ' \033[1;31;0m ' + item + '\033[0m') for item in chart: # 遍历列表 hchartwid = int(item[1] / hchartall) # 获得条形图比较数据 print( item[0].ljust(8) + ' \033[1;31;0m ' + hchartwid * mark + '\033[0m')
[Python] 纯文本查看 复制代码
第二种: chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]] # 4大互联网公司市值信息 hchartall=300 # 数据单位长度参数 color= '41m ' # 条形图颜色参数 for item in chart: # 遍历列表 hchartwid = int(item[1] / hchartall) # 获得条形图量化数据 print( item[0].ljust(8) + ' \033[1;32;' +color + ''.ljust(hchartwid)+ '\033[0m') print('') # 条形图之间实现间隔
2.纵式条形图的实现第一种:
[Python] 纯文本查看 复制代码
chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]] hchartall=900 # 条形图数据单位长度 mark=chr(0x25a0) # 填充条形图的字符为方块 datazip=[] # 量化后的比较数据 horiz=[] # 横式列表矩阵 stri='' # 存储从横式列表矩阵临时提取的字符 vertical=[] # 纵式列表矩阵 for item in chart: # 遍历4大互联网公司市值列表 hchartwid = int(item[1] / hchartall) # 按单位长度计算各公司条形图比较数据 datazip.append(hchartwid) # 添加条形图数据到比较数据列表 maxdata=max(datazip) # 获取数据比较列表的最大值 for item in datazip: # 遍历数据比较列表 # 转换为1和0组成横式列表矩阵,列表前面的值为1(比较数据大小决定),后面补充0 horiz.append('1' * int(item) + (maxdata-int(item))*'0') for i in range(maxdata): # 按数据比较列表的最大值转换纵式矩阵列表 for item in horiz: # 遍历横式矩阵列表 stri=stri+item[maxdata-i-1] # 提取每个列表的一个字符 vertical.append(stri) # 添加到纵式列表 stri='' # 清空临时存储的横式数据 for item in vertical: # 遍历纵式矩阵列表 for i in item: # 遍历其中的一个列表 if i=='1': # 如果列表元素为“1” print(' \033[31m'+mark *2+ '\033[0m',end=' ') # 按输出字符 else: # 如果列表元素为“0 ” print(" ",end=' ') # 输出为空 print() # 输出空列 print(chart[0][0],chart[1][0],chart[2][0],chart[3][0] ) # 添加公司名称信息
[Python] 纯文本查看 复制代码
第二种: chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]] hchartall=900 # 条形图数据单位长度 mark=chr(0x25a0) # 填充条形图的字符为方块 datazip=[] # 量化后的比较数据 horiz=[] # 横式列表矩阵 stri='' # 存储从横式列表矩阵临时提取的字符 vertical=[] # 纵式列表矩阵 for item in chart: # 遍历4大互联网公司市值列表 hchartwid = int(item[1] / hchartall) # 按单位长度计算各公司条形图比较数据 datazip.append(hchartwid) # 添加条形图数据到比较数据列表 maxdata=max(datazip) # 获取数据比较列表的最大值 for item in datazip: # 遍历数据比较列表 # 转换为1和0组成横式列表矩阵,列表前面的值为1(比较数据大小决定),后面补充0 horiz.append('1' * int(item) + (maxdata-int(item))*'0') for i in range(maxdata): # 按数据比较列表的最大值转换纵式矩阵列表 for item in horiz: # 遍历横式矩阵列表 stri=stri+item[maxdata-i-1] # 提取每个列表的一个字符 vertical.append(stri) # 添加到纵式列表 stri='' # 清空临时存储的横式数据 print('\33[35m',chart[0][1],' ',chart[1][1],' ',chart[2][1],' ',chart[3][1],'\33[0m') for item in vertical: # 遍历列表矩阵 for i in item: # 遍历其中一个列表 if i=='1': # 如果为“1”,输出背景色 print(' \033[41m'+' '+ '\033[0m',end=' ') else: # 如果为“0”,不输出内容 print(" ",end=' ') print() # 输出间隔列 print(chart[0][0],chart[1][0],chart[2][0],chart[3][0] ) # 输出公司名称
代码可能没什么实际作用,只供学习参考。对有些人或许有作用~
大家来点热心和B吧!
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 文件段落排版
- 下一篇: [Python]下载网易云歌单歌曲,新人作品