Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from poetry_data.data import getData
- from drawbot_skia.drawbot import *
- from datetime import datetime
- poetry = getData('poetry')
- fireballs = getData('fireballs')
- # # Подсчет авторов, у которых чаще всего падали болиды в день публикации
- # author_counts = {}
- # for fire in fireballs:
- # for poet in poetry:
- # if fire['date'].date() == poet['date'].date():
- # author = poet['author']
- # if author in author_counts:
- # author_counts[author] += 1
- # else:
- # author_counts[author] = 1
- # print(author_counts)
- # value_key_pairs = ((value, key) for (key,value) in author_counts.items())
- # # Сортировка по частоте
- # sorted_value_key_pairs = sorted(value_key_pairs, reverse=True)
- # print(sorted_value_key_pairs)
- # # Итог:
- # # 16 Чарльз Буковски, 14 Андрей Гришаев, 13 Михаил Айзенберг, 13 Виталий Пуханов, 13 Василий Бородин
- # # 12 Ян Сатуновский, 11 Всеволод Некрасов, 10 Оксана Васякина, 10 Данила Давыдов, 9 София Полякова
- # Выбор автора
- author_name = 'Чарльз Буковски'
- # Выбираем одного автора и берем показатели энергии болидов
- energies = []
- for fire in fireballs:
- for poet in poetry:
- if (poet['author'] == author_name) & (fire['date'].date() == poet['date'].date()):
- #print(fire['energy'])
- energies.append(float(fire['energy']))
- #print(energies)
- # Суммируем энергию всех болидов для визуализации
- sum_fireballs = sum(energies)
- x = 0
- y = 0
- date_text = 0
- # Координаты и дату берем у максимального болида
- for fire in fireballs:
- if float(fire['energy']) == max(energies):
- x = float(fire['lat'])
- y = float(fire['lon'])
- date_text = fire['date'].date()
- # Ищем индекс текста автора в день максимального болида
- text_index = 0
- for index, poet in enumerate(poetry):
- if (poet['date'].date() == date_text) & (poet['author'] == author_name):
- #print(f"Text is at index: {index}")
- text_index = index
- #print(poet['text'])
- newPage(742.5, 1050)
- # Берем текст в дату максимального болида
- pub = poetry[text_index]["text"]
- fontSize(30)
- # font("Times-Italic", 30) не работает..
- splitted_pub = pub.split("\n")
- y_text = 1050 - 40
- for line in splitted_pub:
- text(line, (10, y_text))
- y_text -= 25
- # Ставим дату максимального болида
- text(str(date_text), (550, 1000))
- # Рисуем черный круг, где x = lat, y = lon максимального болида, радиус = сумма энергий всех болидов
- shadow((0, 0), 30, (0, 0, 0))
- oval(x, y, sum_fireballs, sum_fireballs)
- fill(0, 0, 0)
- saveImage("page-001.pdf")
Advertisement
Add Comment
Please, Sign In to add comment