Книга «Изучаем Python»



Pdf көрінісі
бет198/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   194   195   196   197   198   199   200   201   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 15 • Генерирование данных
# Анализ результатов.
frequencies = []
 
for value in range(1, die.num_sides+1):
 
frequency = results.count(value)
 
frequencies.append(frequency)
print(frequencies)
Так как Pygal используется для анализа, а не для вывода результатов, количество 
моделируемых бросков можно увеличить до 1000 

. Для анализа создается пустой 
список 
frequencies
, в котором хранится количество выпадений каждого значения. 
Программа перебирает возможные значения (от 1 до 6 в данном случае) в цикле 


подсчитывает количество вхождений каждого числа в результатах 

, после чего 
присоединяет полученное значение к списку 
frequencies

. Содержимое списка 
выводится перед построением визуализации:
[155, 167, 168, 170, 159, 181]
Результаты выглядят разумно: мы видим все шесть частот, по одной для каждого 
возможного результата при броске D6, и ни одна из частот не выделяется на общем 
фоне. А теперь займемся наглядным представлением результатов.
Построение гистограммы
Имея список частот, можно построить гистограмму результатов. Гистограмма пред-
ставляет собой столбцовую диаграмму, наглядно отображающую относительные 
частоты результатов. Код построения гистограммы выглядит так:
die_visual.py
import pygal
...
# Анализ результатов.
frequencies = []
for value in range(1, die.num_sides+1):
frequency = results.count(value)
frequencies.append(frequency)
# Визуализация результатов.
 
hist = pygal.Bar()
hist.title = "Results 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')
Чтобы построить столбцовую диаграмму, мы создаем экземпляр 
pygal.Bar()
, ко-
торый сохраняется в переменной 
hist

. Затем мы задаем атрибут 
title
объекта 


Моделирование бросков кубиков в Pygal
331
hist
(обычная строка, используемая как заголовок гистограммы), используем воз-
можные результаты броска D6 как метки оси 
x

, а также добавляем надпись для 
каждой из осей. Метод 
add()
используется для добавления на гистограмму серии 
значений 

(при этом ему передается метка для добавляемого набора и список 
значений, отображаемых на диаграмме). Наконец, диаграмма записывается в файл 
SVG, что предполагает имя файла с расширением 
.svg
.
Полученную диаграмму проще всего просмотреть в браузере. Откройте новую 
вкладку в любом браузере, а в ней откройте файл 
die_visual .svg
(из папки, в которой 
был сохранен файл 
die_visual .py
). Диаграмма должна выглядеть примерно так, как 
на рис. 15.11. (Мы слегка изменили изображение для печати; по умолчанию Pygal 
генерирует диаграммы с более темным фоном, чем на рисунке.)


Достарыңызбен бөлісу:
1   ...   194   195   196   197   198   199   200   201   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет