Создание лучшей панели управления с помощью Python, Dash и Plotly
1 min read
Мое хобби — изучать недра сырьевых товаров и фьючерсов. Как можно было предположить, в него входит много данных и анализа. Таблицы, отчеты, диаграммы, графики — вы называете это, оно есть.
Пытаясь двигаться вперед и разбираться во всем этом, я обнаруживаю, что мне нужно визуализировать вещи, которые не всегда существуют. Мне нужно видеть данные такими, какими я хочу их видеть.
Если вы занимаетесь анализом данных в какой-либо форме или сфере деятельности, вы, вероятно, уже знаете, о чем я говорю. Тем не менее, есть много людей, которые плохо знакомы с анализом данных, но только ныряют в воду. Есть и более опытные люди, которые просто не использовали эти инструменты.
Эта статья предназначена для тех, кто хочет сделать больше или, возможно, просто перейти к новому инструменту. Возможно, вы познакомились с основами работы с Dash и Plotly и хотите увидеть что-то новое.
Надеюсь, это ответит на некоторые вопросы или подтолкнет к новой творческой идее.
Что ожидать
Я собираюсь подойти к этой статье с нуля. Я объясню, как появился этот проект, его структуру и возможности, и где я могу видеть его развитие в будущем.
Из-за размера я не могу полностью разобрать все по строкам. Однако я очень постарался написать подробный простой код с большим количеством встроенной документации. Файлы репозитория будут бесценным дополнением.
Моя цель — дать обзор шаблона для запуска подобного проекта и показать лишь некоторые из возможных. Вам не нужно действительно разбираться в лежащих в основе данных или даже проявлять к ним интерес, чтобы получить представление. Если вы занимаетесь сырьевыми товарами и фьючерсами, тогда это будет иметь совершенно другое измерение стоимости.
В начале…
Как я сказал во вступлении, мое хобби — сбор и анализ данных о товарах. Отличным источником этих данных являются еженедельные отчеты, предоставляемые Комиссией по торговле товарными фьючерсами (CFTC).
Данные, которые я использую для всего этого проекта, размещены здесь: https://www.cftc.gov/MarketReports/CommitmentsofTraders/index.htm.
Для меня весь этот проект начался с разбора некоторых отчетов. Когда я только начинал, я написал быстрый скрипт, который собирал отчеты, немного обрабатывал файлы, добавлял некоторые значения и выводил диаграммы. Потом количество отчетов стало расти.
По мере того как я продолжал, я начал смотреть на несколько товаров. Я запускал свой сценарий, и у меня было несколько десятков вкладок, заполняющих окно браузера всевозможными диаграммами. Это было невыносимо.
Мне нужно было все это организовать. Итак, приборная панель была концептуализирована.
Как и все ленивые программисты, я начал с шаблона. Шаблон оказался стандартным, который я использовал в прошлом и доработал для гораздо более крупной аналитической системы, управляемой базами данных. Я начал вырывать то, что мне было не нужно, и строил.
Я говорю об этом не для того, чтобы тратить время на ненужные описания и истории, а для того, чтобы дать логику некоторых архитектурных решений. Вещи, которые на первый взгляд могут показаться странными. Однако все это имеет смысл, если рассматривать его в контексте расширения простого до более надежной и сложной системы.
Хорошие решения решают сегодняшние проблемы. Лучшие решения смотрят в будущее. Великие системы включают и то, и другое.
Код
Когда мы займемся этим, вам понадобится доступ к коду. Это ссылка на мой репозиторий для этого проекта. Все примеры кода и ссылки взяты отсюда: