Pygalギャラリー(確率論と数理統計学がらくたイベントに基づいてPygal分析)

アナログサイコロ

クラスサイコロを作成します

from random import randint


class Die():
    """表示一个骰子的类"""
#num_sides表示骰子的面数,默认为6面
    def __init__(self, num_sides=6):
        """骰子默认为6面"""
        self.num_sides = num_sides

    def roll(self):
        """返回一个1和骰子面数之间的随机值"""
        return randint(1, self.num_sides)

サイコロツール################# ###################

from random import randint


class Die():
    """表示一个骰子的类"""

    def __init__(self, num_sides=6):
        """骰子默认为6面"""
        self.num_sides = num_sides

    def roll(self):
        """返回一个1和骰子面数之间的随机值"""
        return randint(1, self.num_sides)

######################グラフィカルインタフェース表示###################

import pygal

from die_visual import action

frequencies = action()
# 创建一个条形图
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_labels = "Frequency of Result"
# 将数据赋值到具体的条形图
hist.add('D', frequencies)
hist.render_to_file("die_visual.svg")

インタフェースの表示

 

同時に2つのサイコロを投げます

 

 

from die import Die


# 生成数据
def action():
    # 创建两个D6骰子
    die_1 = Die()
    die_2 = Die()
    # 掷几次骰子,并将结果存储在一个列表中
    results = []
    for roll_num in range(1000):
        result = die_1.roll()+die_2.roll()
        results.append(result)
    print(results)
    return get_count_each_side(die_1, die_2,results)


# 分析结果
def get_count_each_side(die_1,die_2, results):
    frequencies = []
    max_num = die_1.num_sides+die_2.num_sides
    # range()方法是左闭右开的函数
    # 取值范围为(最小值+最小值,最大值+最大值)
    for value in range(2, max_num + 1):
        # 统计每个点出现的次数
        frequency = results.count(value)
        # 将每个点出现的次数放入到列表中
        frequencies.append(frequency)
    print(frequencies)
    return frequencies


action()

##############データショー

from die_visual import action

frequencies = action()
# 创建一个条形图
x_names = []
hist = pygal.Bar()
hist.title = "Result of rolling one D6 1000 times"
# 横坐标表示骰子的每面
#使用range()生成一个list
x_names = list(range(2,13))
#hist.x_labels = ['1', '2', '3', '4', '5', '6','7','8','9','10','11','12']
hist.x_labels = x_names
hist.x_title = "Result"
hist.y_labels = "Frequency of Result"
# 将数据赋值到具体的条形图
hist.add('D6 + D6', frequencies)
hist.render_to_file("die_visual.svg")

 

サイコロを投げるの異なる2点

#サイコロの異なる2点作成
die_1 =ダイ()
die_2 =ダイ(10)

 

 

公開された14元の記事 ウォンの賞賛1 ビュー272

おすすめ

転載: blog.csdn.net/weixin_38829588/article/details/104544688
おすすめ