Архив метки: PlotLy

3D График

Как отобразить на графике 5 факторов, 5 переменых?

4 категории и одна сумма.

Для одной точки.

Можно построить 3D график.

Например вот такой график Plotly

(если график не видно здесь, то посмотрите на него на странице рубрики)

Этот график можно вращать по вертикали и горизонтали.

Приближать и удалять.

Можно сделать сброс до исходного вида.

Можно выключать из отображения категории товаров.

Можно сохранить кадр, который на экране – именно с таким поворотом и приближением.

При наведении курсора мышки на точку, выводится подробная информация.

Статья понравилась?

Дашборды в новых условиях

Мой курс Анализ данных на платформе Яндекс.практикум добрался до финального проекта.

Ура!
В списке задач дипломной работы есть построение дашборда в программе tableau.

Что такое dashboard? В прямом переводе – это приборная панель. В современном мире это ещё и панель показателей.

Вот пример на tableau:

https://clck.ru/hH2bd

Но недавно, вдруг, стали появляться в этой программе сообщения о недоступности сервиса в нашем регионе.

Какие есть альтернативы?

Гугл

https://datastudio.google.com/s/nwXIk03nfBU

Яндекс

https://datalens.yandex/tivsy1aesdgal

Самописный сайт на PlotLy

http://dashboards.eddydewrussia.ru/
Статья понравилась?

А если без стороннего сайта, то как разместить PlotLy с надписями и подписями на сайт?

Вчера я написал пост

Как интегрировать интерактивный график PlotLy на сайт

А сидел я сейчас “просто дышал” перед сном и посетила меня шальная мысль.

А что, если из блока DIV, который генерирует PlotLy с подписями на русском языке, просто убрать лишние \ и сразу вставить на сайт?
Без транскодирования на стороннем сервисе?

Гениально!

И вот результат:

Шаги по встраиванию интерактивного графика PlotLy на сайт:

  • В Юпитер.Ноутбук построить график (например, с именем fig)
  • В следующей ячейке Ноутбука ввести команду
    • plotly.offline.plot(fig, include_plotlyjs=False, output_type=’div’)
  • Ноутбук выведет окно с кучей текста – блок DIV
  • Скопировать весь этот текст за исключением первого символа – прямой кавычки () и последнего символа – прямой кавычки ()
  • Вставить этот текст в самый простой текстовый редактор – Блокнот Windows
  • Сделать замену по всему тексту двойного слэша \\ на одинарный слэш \
  • Скопировать весь получившийся текст
  • Вставить этот текст на сайте в блок “Произвольный HTML”
  • Если этот первый график PlotLy, который размещается на странице сайта, то:
    • Перед всем текстом в блоке вставить строку: <script src=”https://cdn.plot.ly/plotly-latest.min.js”></script>
Статья понравилась?

Как интегрировать интерактивный график PlotLy на сайт

Строим график PlotLy в Юпитер.Ноутбук

# импорт библиотек
import pandas as pd
import plotly.express as px
import plotly
# чтение файла с подготовленными данными
table_for_scatter = pd.read_csv('https://eddydewrussia.ru/download/dannye-dlja-postroenija-interaktivnogo-grafika/?wpdmdl=5290&refresh=6291d6e6d1a141653724902')
# строим график
fig = px.scatter(table_for_scatter, x='units', y='unit_price', color='outletname',
                 size='royalty_amount_customer', size_max=100)
fig.show()

В Юпитер.Ноутбук получим данные для встраивания PlotLy на сайт

# выводим DIV блок графика
plotly.offline.plot(fig, include_plotlyjs=False, output_type='div')

Обратите внимание! В блоке выше прямые кавычки могут быть переделаны самим сайтом на апострофы.

При вставке приведённого кода проверьте их и при необходимости, замените.

Получаем блок DIV(отрывок) графика PlotLy:

'<div>                            <div id="2c6ca52a-b541-4a94-b51b-1489ca227e74" class="plotly-graph-div" style="height:100%; width:100%;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("2c6ca52a-b541-4a94-b51b-1489ca227e74")) {                    Plotly.newPlot(                        "2c6ca52a-b541-4a94-b51b-1489ca227e74",                        [{"hovertemplate":"outletname=YouTube Music<br>units=%{x}<br>unit_price=%{y}<br>royalty_amount_customer=%{marker.size}<extra></extra>","legendgroup":"YouTube Music","marker":{"color":"#636efa","size":[1.233006],"sizemode":"area","sizeref":0.0001233006,"symbol":"circle"},"mode":"markers","name":"YouTube Music","orientation": ...

Встраиваем график PlotLy в сайт

  • На сайте активируем блок вставки произвольного HTML
  • В первую строку блока вставляем активацию подсистемы вывода графика:
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
  • Затем – полученный выше блок DIV
    Обратите внимание на то, что блок DIV в выводе заключён в одинарные кавычки 
    Копировать блок для переноса на сайт следует без этих кавычек

В итоге ячейка произвольного HTML выглядит так (отрывок):

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div>                            <div id="2c6ca52a-b541-4a94-b51b-1489ca227e74" class="plotly-graph-div" style="height:100%; width:100%;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("2c6ca52a-b541-4a94-b51b-1489ca227e74")) {                    Plotly.newPlot(                        "2c6ca52a-b541-4a94-b51b-1489ca227e74",                        [{"hovertemplate":"outletname=YouTube Music<br>units=%{x}<br>unit_price=%{y}<br>royalty_amount_customer=%{marker.size}<extra></extra>","legendgroup":"YouTube Music","marker":{"color":"#636efa","size":[1.233006],"sizemode":"area","sizeref":0.0001233006,"symbol":"circle"},"mode":"markers","name":"YouTube Music","orientation":"v","showlegend":true,"x":[400],"xaxis":"x","y":[0.003082515],"yaxis":"y","type":"scatter"},{"hovertemplate":"outletname=Youtube<br>units=%{x}<br>unit_price=%{y}<br>royalty_amount_customer=%{marker.size}<extra></extra>","legendgroup":"Youtube","marker":{"color":"#EF553B","size":[0.063765],"sizemode":"area","sizeref":0.0001233006,"symbol":"circle"},"mode":"markers","name":"Youtube","orientation": ...

И результат, интерактивный график PlotLy на нашем сайте:

Если больше одного графика PlotLy на странице:

Если надо разместить на странице больше одного графика, то для последующих графиков не надо вставлять строку загрузки графической библиотеки.

Досточно лишь DIV блока.

Русский язык в подписях и надписях графика PlotLy

А вот с русским языком в надписях – проблема.

Сама система PlotLy адекватно прорисовывает графики с русскими надписями.

Также верно происходит экспорт графика в html файл.

Однако при экспорте в DIV блок, все кириллические символы заменяются на их коды.
А сайт но вордпресс эти коды не выводит буквами, и выводит эти самые коды и получается белиберда.

Что делать?

  1. Текст блока DIV графика PlotLy вставить блокнот Windows
  2. Меню “Заменить”.
  3. Указываем для поиска “\\”
  4. Указываем для замены “\”
  5. Выделяем весь текст и копируем
  6. Заходим на сайт КОНВЕРТЕР
    1. (выяснилось, что этот текст с кракозябрами, но с одинарными \ можно сразу вставить на сайт (п. 9)
  7. Вставляем весь текст в окно Юникод
  8. Ждём
  9. В окне Текст выделяем весь текст, копируем и вставляем его в блок “Произвольный HTML”
  10. Получаем результат.

Содержимое файла (отрывок):

'<div>                            <div id="2243eb5b-ca2c-4f83-9760-06d60a8d4e48" class="plotly-graph-div" style="height:800px; width:800px;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("2243eb5b-ca2c-4f83-9760-06d60a8d4e48")) {                    Plotly.newPlot(                        "2243eb5b-ca2c-4f83-9760-06d60a8d4e48",                        [{"alignmentgroup":"True","hovertemplate":"\\u0421\\u0435\\u0442\\u0435\\u0432\\u043e\\u0435=\\u043d\\u0435\\u0442<br>\\u0422\\u0438\\u043f \\u0437\\u0430\\u0432\\u0435\\u0434\\u0435\\u043d\\u0438\\u044f=%{x}<br>\\u041a\\u043e\\u043b\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043e \\u043f\\u043e\\u0441\\u0430\\u0434\\u043e\\u0447\\u043d\\u044b\\u0445 \\u043c\\u0435\\u0441\\u0442 =%{y}<extra></extra>","legendgroup":"\\u043d\\u0435\\u0442","marker":{"color":"#636efa"},"name":"\\u043d\\u0435\\u0442","notched":false,"offsetgroup":"\\u043d\\u0435\\u0442","orientation":"v","quartilemethod":"linear","showlegend":true,"x":["\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440","\\u0431\\u0430\\u0440",

После замены \\ на \

'<div>                            <div id="2243eb5b-ca2c-4f83-9760-06d60a8d4e48" class="plotly-graph-div" style="height:800px; width:800px;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("2243eb5b-ca2c-4f83-9760-06d60a8d4e48")) {                    Plotly.newPlot(                        "2243eb5b-ca2c-4f83-9760-06d60a8d4e48",                        [{"alignmentgroup":"True","hovertemplate":"\u0421\u0435\u0442\u0435\u0432\u043e\u0435=\u043d\u0435\u0442<br>\u0422\u0438\u043f \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u044f=%{x}<br>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 =%{y}<extra></extra>","legendgroup":"\u043d\u0435\u0442","marker":{"color":"#636efa"},"name":"\u043d\u0435\u0442","notched":false,"offsetgroup":"\u043d\u0435\u0442","orientation":"v","quartilemethod":"linear","showlegend":true,"x":["\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440","\u0431\u0430\u0440",

После обработки на сайте

'<div>                            <div id="2243eb5b-ca2c-4f83-9760-06d60a8d4e48" class="plotly-graph-div" style="height:800px; width:800px;"></div>            <script type="text/javascript">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById("2243eb5b-ca2c-4f83-9760-06d60a8d4e48")) {                    Plotly.newPlot(                        "2243eb5b-ca2c-4f83-9760-06d60a8d4e48",                        [{"alignmentgroup":"True","hovertemplate":"Сетевое=нет<br>Тип заведения=%{x}<br>Количество посадочных мест =%{y}<extra></extra>","legendgroup":"нет","marker":{"color":"#636efa"},"name":"нет","notched":false,"offsetgroup":"нет","orientation":"v","quartilemethod":"linear","showlegend":true,"x":["бар","бар","бар","бар","бар","бар","бар","бар","бар","бар","бар","бар","бар",

Получаем график PlotLy с подписями на русском языке:

Статья понравилась?

Лидер музыкального рынка – 2

Анализ данных музыкального ритейла за 4 квартал 2021 г. подтвердил твёрдость безоговорочного лидера

YouTube

Плейлист “Лучшее”

А вот на второе место вышел

ВКонтакте

https://vk.com/artist/eduarddementyev_mtyzmduwoti4mw

Интерактивный график

Посмотрим распределение

  • цена юнита
  • количество прослушиваний
    Размер маркера – сумма роялти
Статья понравилась?