341 die_visual.py from plotly.graph_objs import Bar, Layout
from plotly import offline
from die import Die
...
# Анализ результатов.
frequencies = []
for value in range(1, die.num_sides+1):
frequency = results.count(value)
frequencies.append(frequency)
# Визуализация результатов.
❶
x_values = list(range(1, die.num_sides+1))
❷
data = [Bar(x=x_values, y=frequencies)]
❸
x_axis_config = {'title': 'Result'}
y_axis_config = {'title': 'Frequency of Result'}
❹
my_layout = Layout(title='Results of rolling one D6 1000 times',
xaxis=x_axis_config, yaxis=y_axis_config)
❺
offline.plot({'data': data, 'layout': my_layout}, filename='d6.html')
Чтобы построить столбцовую диаграмму, необходимо создать столбец для каж-
дого из возможных результатов. Эти результаты сохраняются в списке
x_values
,
который начинается с 1 и заканчивается количеством граней кубика
. Plotly не
может получить результат функции
range()
напрямую, поэтому необходимо явно
преобразовать диапазон в список при помощи функции
list
. Класс
Bar
из Plotly
представляет набор данных, который будет форматироваться в виде столбцовой
диаграммы
. Класс должен быть заключен в квадратные скобки, поскольку набор
данных может состоять из нескольких элементов.
Для осей предусмотрены различные возможности настройки, и каждый параметр
конфигурации сохраняется в виде элемента в словаре. На данный момент мы толь-
ко задаем заголовок каждой оси
. Класс
Layout()
возвращает объект, который за-
дает макет и конфигурацию диаграммы в целом
. Здесь также задается заголовок
диаграммы и передаются словари конфигурации осей
x
и
y
.
Диаграмма строится вызовом функции
offline.plot()
. Этой функции пере-
дается словарь с объектами данных и макета; она также получает имя файла для
сохранения результата. В нашем примере результат сохраняется в файле с именем
d6 .html
.
При запуске программы
die_visual .py
должен открыться браузер с файлом
d6 .html
.
Если это не происходит автоматически, откройте новую вкладку в любом браузере,
а затем откройте файл
d6 .html
(из папки, в которой был сохранен файл
die_visual .py
).
Диаграмма должна выглядеть примерно так, как на рис. 15.12. (Изображение было
слегка изменено для печати; по умолчанию Plotly генерирует диаграммы с более
темным фоном, чем на иллюстрации.)