1.横板条形统计图
实现方式
1.将数据存放在列表里,把数据除以300(300是一个单位,一个300就是一个方格)
2.输出数据标题名称
3.将除以300后的数据再乘一个符号(输出几个符号),这样能更直观的的查看数据
4.输出符号(也可以将符号加上背景颜色,这样看上去更美观)
代码:
sj=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]]
hchartall=300
mark='41m'
for item in Stark:
jh=int(item[1]/hchartall)
print(item[0].ljust(8)+' \033[1;32;'+mark+''.ljust(jh)+'\033[0m')
结果:
2.输出竖版条形统计图
1.将数据存放在列表里,把数据除以900
2.输出数据标题名称
3.将数据用for循环先将数值转换为1和0
4,将横向的1和0装换为竖着的
5.使用if语句输出,如果是1就输出红色的方格,如果是0就输出空格
4。使用for和if语句输出
代码如下:
chart=[['alibaba',4580],['amazon',9628],['apple',11331],['oracle',2053]]
hchartall = 900
mark=chr(0x25a0)
datazip=[]
horiz=[]
stri=''
vertical=[]
for item in chart:
hchartwid=int(item[1]/hchartall)
datazip.append(hchartwid)
maxdata=max(datazip)
for item in datazip:
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':
print(' \033[41m'+' '+'\033[0m',end='')
else:
print(' ',end=' ')
print()
print(chart[0][0],chart[1][0],chart[2][0],chart[3][0])
结果: