python -m pip install --user plotly
(Если при установке Matplotlib использовалась команда
python3
или другая, убе-
дитесь в том, что в данном случае используется то же самое.)
Примеры визуализаций, которые могут быть построены с использованием Plotly,
представлены в галерее диаграмм: зайдите на сайт
https://plot .ly/python/
. Каждый
пример сопровождается исходным кодом, так что вы сможете увидеть, как была
построена каждая из визуализаций.
Создание класса кубика
Для моделирования броска одного кубика будет использоваться класс
Die
:
die.py
from random import randint
Моделирование бросков кубиков в Plotly
339
class Die():
"""Класс, представляющий один кубик."""
❶
def __init__(self, num_sides=6):
"""По умолчанию используется шестигранный кубик."""
self.num_sides = num_sides
def roll(self):
""""Возвращает случайное число от 1 до числа граней."""
❷
return randint(1, self.num_sides)
Метод
__init__()
получает один необязательный аргумент. Если при создании
экземпляра кубика аргумент с количеством сторон не передается, по умолчанию
создается шестигранный кубик. Если же аргумент
присутствует
, то переданное
значение используется для определения количества граней
. (Кубики принято
обозначать по количеству граней: шестигранный кубик — D6, восьмигранный —
D8 и т. д.)
Метод
roll()
использует функцию
randint()
для получения случайного числа
в диапазоне от 1 до количества граней
. Функция может вернуть начальное зна-
чение (1), конечное значение (
num_sides
) или любое целое число в этом диапазоне.
Бросок кубика
Прежде чем строить визуализацию на основе этого класса, бросим кубик D6, вы-
ведем результаты и убедимся в том, что они выглядят разумно:
die_visual.py
from die import Die
# Создание кубика D6.
❶
die = Die()
# Моделирование серии бросков с сохранением результатов в списке.
results = []
❷
for roll_num in range(100):
result = die.roll()
results.append(result)
print(results)
В точке
создается экземпляр
Die
с шестью гранями по умолчанию. В точке
моделируются 100 бросков кубика, а результат каждого броска сохраняется в спи-
ске
results
. Выборка выглядит примерно так:
[4, 6, 5, 6, 1, 5, 6, 3, 5, 3, 5, 3, 2, 2, 1, 3, 1, 5, 3, 6, 3, 6, 5, 4,
1, 1, 4, 2, 3, 6, 4, 2, 6, 4, 1, 3, 2, 5, 6, 3, 6, 2, 1, 1, 3, 4, 1, 4,
3, 5, 1, 4, 5, 5, 2, 3, 3, 1, 2, 3, 5, 6, 2, 5, 6, 1, 3, 2, 1, 1, 1, 6,
5, 5, 2, 2, 6, 4, 1, 4, 5, 1, 1, 1, 4, 5, 3, 3, 1, 3, 5, 4, 5, 6, 5, 4,
1, 5, 1, 2]
340
Достарыңызбен бөлісу: |