Bash-скрипт для искрографиков

    Искрографик (англ. sparkline) — это термин, который придумал Эдвард Тафти для обозначения миниатюрных (word-sized), но информационно-плотных графиков. Они показывают общую картину там, где нет места для размещения нормальных графиков с осями координат. Особенно полезными могут быть в таких областях как финансы и трейдинг, спортивные события, научный и медицинский анализ, системное администрирование.



    Зак Холман (Zach Holman) из Github написал shell-скрипт Spark, который строит инфографику простой командой spark прямо из шелла (достаточно добавить скрипт куда-нибудь в $PATH).

    Spark обрабатывает любой ряд чисел, разделённых пробелами запятыми и т.д. Вы можете дать ему цифры прямо из командной строки.

    > spark 0 30 55 80 33 150
    ▁▂▃▅▂▇ 

    Или указать любой источник данных. Например, вот искрографик землетрясений с магнитудой более 1,0 за последние 24 часа с официального сайта.

    › curl http://earthquake.usgs.gov/earthquakes/catalogs/eqs1day-M1.txt --silent | 
      sed '1d' |
      cut -d, -f9 |
      tr "\n" ',' |
      sed 's/ //g' |
      spark
      ▅▆▂▃▂▂▂▅▂▂▅▇▂▂▂▃▆▆▆▅▃▂▂▂▁▂▂▆▁▃▂▂▂▂▃▂▆▂▂▂▁▂▂▃▂▂▃
      ▂▂▃▂▂▁▂▂▅▂▂▆▆▅▃▆

    Другие примеры. Проcмотр количества коммитов в репозиторий на github, по автору.

    › git shortlog -s |
          cut -f1 |
          tr "\n" ',' |
          sed 's/ //g' |
          spark
      ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▂▁▁▅▁▂▁▁▁▂▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁

    Визуализация кода. Количество знаков в каждой строчке самого скрипта spark, без учёта пустых строчек.

    › awk '{ print length($0) }' spark |
      grep -Ev 0 |
      tr "\n" ',' |
      spark
      ▁▁▁▁▅▁▇▁▁▅▁▁▁▁▁▂▂▁▃▃▁▁▃▁▃▁▂▁▁▂▂▅▂▃▂▃▃▁▆▃▃▃▁▇▁▁▂▂▂▇▅▁▂▂▁▇▁▃▁▇
      ▁▂▁▇▁▁▆▂▁▇▁▂▁▁▂▅▁▂▁▆▇▇▂▁▂▁▁▁▂▂▁▅▁▂▁▁▃▁▃▁▁▁▃▂▂▂▁▁▅▂▁▁▁▁▂▂▁▁▁▂▂

    Другие интересные примеры использования spark см. здесь.

    Порт на Python
    Порт на Си

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 17

      +12
      Ммм… красота! Юникс и консоль будут вечны.
        +3
        Хотя смотрю я на эти графики и понимаю, что не хватает подписей: непонятно ни значение абсциссы (когда это было?) ни ординаты (это скачки в 2 раза или в 10 раз).
          +4
          Тогда это уже будет не искрографик.
        • UFO just landed and posted this here
          0
          но понятна динамика. впрочем, все это описано в самой статье
            0
            вариант для git вообще круто!!! буду использовать!
              +1
              вот команда для просмотра графика добавления кода
              git log --numstat | grep '^[0-9]' | cut -f1 | spark

              а это удаления кода
              git log --numstat | grep '^[0-9]' | cut -f2 | spark
              +3
              забавно конечно, но выврл скрипта не spark-график, а столбиковая диаграмма.
              собственно, правильные spark-графики изображены на картинке — линия

              footage.shutterstock.com/clip-893404-stock-footage-animated-ekg-display.html
                +2
                Количетво коммитов в git за последние две недели.
                for day in $(seq 14 -1 0); do git log --before="${day} days" --after="$[${day}+1] days" --format=oneline | wc -l ;done | spark
                █▁▁▁▁▁▇▃███▁▂▁▁
                  0
                  После непродолжительного использования kismet-ng, хотел писать такую штуку для мониторинга (CPU, etc) на ncurses…

                    –1
                    Мне понравилось, но $ spark
                    Убито

                    uname -a
                    Linux 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux
                      0
                      strace spark
                      0
                      Помню, был пост про графическую консоль — http://habrahabr.ru/blogs/nix/119550/
                      Нормальные, человеческие спарклайны хорошо бы туда вписались.
                        0
                        Результат не очень, если честно.

                        Я не программист, это псевдографикой рисуется? Вместо столбиков можно было бы попробовать только палочки верхние оставить (http://gyazo.com/5cbb123513ddeddb6a05510bbc8e3f00) и график надо сжать по горизонтали так, чтобы наклоны были примерно 45˚.

                        Ну и не хватает квантификации. Искрографики на первой картинке можно анализировать. Там, во-первых, подписана одна точка и с ней можно сравнивать другие точки (Чаще всего на искрографиках подписывают экстремумы и крайние точки). А во-вторых, там есть нормальный диапазон (серая полоса), выход (или не выход) за который и представляет наибольший интерес.
                          +1
                          Для шелла нужная штука, для веба же гугловых чартов хватает: image
                          http://chart.apis.google.com/chart?cht=bvg
                          &chs=100x20&chbh=a&chco=000000
                          &chd=t:100,20,25,90,60,30,45,10,35,90,22,49,50,99,9,60,30
                            0
                            Возможно и для веба найдет свое применение в силу «символьной природы» графика. Допустим разработчик сможет применить свои CSS классы к графику и изменить его вид, а пользователь быстро сможет скопировать и отправить этот график, как строку символов в сообщении или email.
                              0
                              Получатель такого сообщения должен будет установить на своей системе скрипт Spark? На сколько я понял, еще нет онлайн сервиса для генерации графа.

                            Only users with full accounts can post comments. Log in, please.