PYTHON摇骰子问题(matplotlib)

import random
results = []
for i in range(1000):
    A = random.randint(1,6)
    results.append(A)

frequancies = {}
for value in range(1,7):
        frequancy = results.count(value)
        frequancies[value] = frequancy
print(frequancies)
#掌握新方法,obj.count(i),里面的i参数虽然只能调用一次,但可以用for循环调用。
>>>{1: 159, 2: 165, 3: 157, 4: 179, 5: 170, 6: 170}

简单的摇骰子问题:
将骰子进行1000次的摇动,判断所得出的数据为多少,利用字典的形式记录下来。然后可以利用直方图的形式,得出骰子的数量多少。得出的结果如何判断是正确的?

  • 进行得出的数据相加
  • 判断其他点数出现的次数会不会高出别的点数太多

绘制直方图

frequencies = []
for value in range(1,die.num_side+1):
    frequency = results.count(value)
    frequencies.append(frequency)

def strreturn(A):
    return str(A)

remake_str = list(map(strreturn,range(1,7)))

hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 TIMES"
hist.x_label = remake_str
hist.x_title = "Result"
hist.y_title = "Frequency"
hist.add('D6',frequencies)
hist.render_to_file('die_visual.svg')```
绘制直方图,我按照书上的步骤,将frequencies变成列表,然后分开进行绘制。如果要用字典进行直方图绘制,主要分别将字典里的key,value取出来,放入add中去。这里,我再次用了map函数,将数字1-6变成字符串。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210124163334299.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTcxMjY0Nw==,size_16,color_FFFFFF,t_70)


猜你喜欢

转载自blog.csdn.net/weixin_49712647/article/details/113092298