美文网首页
制作直方图

制作直方图

作者: 52_St | 来源:发表于2018-01-14 00:56 被阅读11次
制作直方图
  • 首先获取列表的最大元素,同时也是确定输出总行数的关键
    data = [7, 3, 2, 9, 5, 1, 4, 0, 2, 8, 3, 9]
  • 行数
    r = max(data) + 2
  • 列数
    c = len(data)

通过循环打印图像

  • 每行第一列的第一个字符串必定以'|'开头
  • 是否有星(*)依赖于data列表中的元素大小
  • 最后再适当结合运行结果调整参数,使图像效果达到最好

代码(基于Python3)

data = [7, 3, 2, 9, 5, 1, 4, 0, 2, 8, 3, 9]
r = max(data) + 2
c = len(data)
for i in range(r):
    for j in range(c):
        if i < max(data) - data[j]:
            k = 0
        elif i < max(data):
            k = 1
        elif i == max(data):
            print('-' * 63)
            break
        else:
            print(' {}月 '.format(j + 1), end='')
            continue
        if not j:
            print('|' + ' ' * (2 - k) + '*' * k + ' ' * 2, end='')
        elif j < c - 3:
            print(' ' * (3 - k) + '*' * k + ' ' * 2, end='')
        elif j < c - 1:
            print(' ' * (4 - k) + '*' * k + ' ' * 2, end='')
        else:
            print('  *  ')

运行结果如下:


360截图16620615114117128.jpg

相关文章

网友评论

      本文标题:制作直方图

      本文链接:https://www.haomeiwen.com/subject/munhoxtx.html