zoukankan      html  css  js  c++  java
  • 使用Pygal模拟掷骰子

    在本节中,将使用Python可视化包Pygal来生成可缩放的矢量图形文件。

    对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。

    1.创建Die类

    from random import randint
    
    class Die():
        def __init__(self,num_sides=6):
            self.num_sides=num_sides
            
        def roll(self):
            return randint(1,self.num_sides)

    2.分析1000次结果

    from die import Die
    
    die=Die()
    
    results=[]
    for roll_num in range(1000):
        result=die.roll()
        results.append(result)
        
    frequencies=[]
    for value in range(1,die.num_sides+1):
        frequency=results.count(value)
        frequencies.append(frequency)
        
    print(frequencies)

    3.绘制直方图

    import pygal
    from die import Die
    
    die=Die()
    
    results=[]
    for roll_num in range(1000):
        result=die.roll()
        results.append(result)
        
    frequencies=[]
    for value in range(1,die.num_sides+1):
        frequency=results.count(value)
        frequencies.append(frequency)
        
    hist=pygal.Bar()
    hist.title='Result of rolling one D6 1000 times'
    hist.x_labels=['1','2','3','4','5','6']
    hist.x_title="Result"
    hist.y_title="Frequency of Result"
    
    hist.add('D6',frequencies)
    hist.render_to_file('die_visual.svg')

    我们将图表渲染为一个SVG文件,使用web浏览器来查看生成的直方图:

    4.同时掷两个面数不同的骰子50000次

    import pygal
    from die import Die
    
    die_1=Die()
    die_2=Die(10)
    
    results=[]
    for roll_num in range(50000):
        result=die_1.roll()+die_2.roll()
        results.append(result)
        
    frequencies=[]
    max_result=die_1.num_sides+die_2.num_sides
    for value in range(2,max_result+1):
        frequency=results.count(value)
        frequencies.append(frequency)
        
    hist=pygal.Bar()
    hist.title='Result of rolling a D6 and a D10 50000 times'
    hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16']
    hist.x_title="Result"
    hist.y_title="Frequency of Result"
    
    hist.add('D6+D10',frequencies)
    hist.render_to_file('dice_visual.svg')

  • 相关阅读:
    一个判断浏览器类型的JS
    asp中输出xml “文本内容中发现无效字符”问题的解决(转)
    Excel VBA工程密码之最简单破解法
    爆破AspriseOCR 4.0
    vi编辑器的使用(转载)
    数据挖掘(转载)
    简单工厂模式(SimpleFactory)
    工厂方法模式(Factory Method)
    让gridview默认处于编辑模式并取得编辑后的值
    GDB调试精粹及使用实例(转载)
  • 原文地址:https://www.cnblogs.com/exciting/p/9011619.html
Copyright © 2011-2022 走看看