Мы в Telegram
Добавить новость
103news.com
Работа
Август
2022
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
23
24 25 26 27 28 29 30 31

Генерация и сохранение в бэкграунде графиков matplotlib

0
Генерация и сохранение в бэкграунде графиков matplotlib

К заказу приложен тест (по ссылке ниже). Тест имитирует исходный проект. Отладить функцию генерации и сохранения графиков надо прямо в тесте.

В исходном проекте запускается экземпляр класса Main, а Main запускает несколько экземпляров класса Simulation. Экземпляры Simulation запускаются как отдельные процессы с помощью модуля threading. Экземпляры Simulation не обмениваются между собой данными, они независимы.

Экземпляры Simulation должны сохранять графики в виде растровых (PNG) и векторных (не выбрал пока формата) картинок. Отрисовка и сохранение картинок должно быть в бэкграунде. Для создания графиков выбран модуль matplotlib.

matplotlib отказывался работать в Simulation, с ошибкой - не может запускаться не из главного процесса. Видимо из-за того что Simulation запущен через threading. Для решения этой проблемы использовался код отсюда
Multiprocess — Matplotlib 3.5.3 documentation
Исходный код из этой ссылки немного упрощен, но ошибку (невозможно работать не в главном процессе) удалось решить. Но осталось много проблем.

Задачи которые нужно решить:
1. сохранение картинки в файл работает только когда включена отрисовка на экран пользователя (plt.show). В документации к matplotlib рекомендуют отрисовку в бэкграунд через matplotlib.use('Agg'), но при этом почему то закрывается pipe в multiprocessing. Применение matplotlib.use('Agg') я откатил и эта проблема не решена. Окно matplotlib не должно появлятся на экране пользователя.
2. В Simulation даётся команда на сохранение 8ми графиков. Но сохранятеся только 7 картинок. Видимо последняя картинка не сохраняется.
3. Сейчас графики накладываются друг на друга. Вторая, третья и т.д. сохраненная картинка показывает наложенными 1ый + 2ой график, 1ый + 2ой + 3ий графики и т.д. Нужно чтобы чтобы графики не накладывались.
4. Генерация и сохранение первого графика требует около 3 секунд, а каждого последующего - 1 секунду. Нужно уменьшить время до 0.1 сек. (вызов графика - сторока 92 "self.parameters['plotter'].send(data)")
5. Нужно переписать класс Plotter и добавить обработку входных числовых данных разными способами. А именно, чтобы генерировались графики с разным дизайном. Для этого можно в передаваемые данные добавить ключ "type" с возможными значениями ['type_1', 'type_2', 'type_3'] и далее в Plotter должно быть ветвление для генерации графиков разного дизайна.
6. В дизайн графиков добавить возможность задавать: заголовок, названия осей, диапазон значения осей, равный масштаб осей (данные отображают координаты облака точек и нужно чтобы не искажалась форма облака), легенда, форма точек, цвет точек, разрешения сохраняемой картинки, размер сохраняемой картинки, тип файла сохраняемой картинки - растровый (png).

Тестовую функцию и исходные данные, в которой нужно решить указанные проблемы, можно скачайть по ссылке https://1drv.ms/u/s!AgsliTwx9ZLRhNFF7z-TTJtETJiGhg...

Скриншот тестовой функции приложени к заказу.

Требования: Windows 10, Python 3.9
Срок - 1 неделя




Губернаторы России
Москва

Собянин объявил о начале работы хаба молодежного предпринимательства





Москва

Слушатель из Смоленска выиграл на «Авторадио» «Москвич 3»


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Сергей Собянин. Главное за день



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Песня

Театр «Сказка» приглашает на грандиозное театральное шоу «Песни первых птиц»




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Спортсмены из Росгвардии стали призерами соревнований по велоспорту в Москве

Спортсменка Росгвардии установила рекорд в командном спринте на «Гран-при Санкт-Петербурга»

Первые тренировки нового сезона проекта «Спортивные выходные» прошли в Москве


ATP

Янник Синнер высказался о первом месте в рейтинге ATP и травме Новака Джоковича



Новости Крыма на Sevpoisk.ru


Минск

Лукашенко продемонстрировали сборку фюзеляжей МС-21 на Иркутском авиазаводе, Минск проявляет интерес в работе с ОАК



Частные объявления в Вашем городе, в Вашем регионе и в России