如何仅使用Python制作简单的垂直直方图(无matplotlib)

时间:2018-06-12 03:54:50

标签: python opencv image-processing

我想通过打印星号图案使用Python制作垂直直方图。在水平方向上做同样的事情很容易但是如何垂直地做呢?

1 个答案:

答案 0 :(得分:2)

您需要按行打印出数据,从最大直方图值的行开始。

在每一行中,您将为每个桶打印一个'*',其中该桶的值大于或等于与当前行对应的值,以及该值小的空间。

例如)三个6面骰子之和的直方图:

>>> r = list(x+y+z+3 for x in range(6) for y in range(6) for z in range(6))
>>> data = [r.count(v) for v in range(max(r)+1)]
>>> for y in range(max(data), 0, -3):
...   print(*('*' if v >= y else ' ' for v in data))
... 
                    * *              
                  * * * *            
                * * * * * *          
                * * * * * *          
              * * * * * * * *        
              * * * * * * * *       
            * * * * * * * * * *      
          * * * * * * * * * * * *    
        * * * * * * * * * * * * * *  
>>>