YouPlot - Когда график нужен здесь и сейчас, прямо в терминале

18 Jan, 2026

YouPlot Logo

Представьте ситуацию: вы работаете в терминале, анализируете логи, просматриваете данные из CSV-файлов или выводы скриптов. И тут возникает вопрос: "А как выглядит распределение этих значений?" Или: "Как меняется этот параметр со временем?" Обычно в такой момент приходится отвлекаться, открывать Jupyter Notebook, Excel или какой-нибудь специализированный инструмент, чтобы построить простенький график. Знакомая история, правда?

Именно для таких случаев и был создан YouPlot – элегантный и невероятно удобный инструмент командной строки, который позволяет рисовать графики прямо в вашем терминале. Никаких графических интерфейсов, никаких тяжелых зависимостей. Просто данные, пайпы и красивые ASCII-графики.

Что такое YouPlot и кому он нужен?

YouPlot – это CLI-утилита, которая берет на вход данные (из файлов или через stdin) и визуализирует их в виде различных графиков, используя символы Unicode. По сути, это мост между вашими текстовыми данными и наглядной визуализацией, который не заставляет вас покидать привычную среду командной строки.

Кому это пригодится?

  • Системным администраторам и DevOps-инженерам: Быстрый анализ метрик производительности серверов, распределения нагрузки, размеров файлов или процессов. Представьте, как удобно прямо в SSH-сессии построить гистограмму использования диска или график загрузки CPU.
  • Разработчикам: Отладка, экспресс-анализ результатов тестов, визуализация данных из баз или API без написания лишнего кода.
  • Аналитикам данных: Для первичного исследования данных, быстрого понимания их структуры и выявления аномалий.
  • Всем, кто ценит Unix-way: YouPlot идеально вписывается в философию "маленьких, но мощных инструментов, которые хорошо делают одно дело и легко комбинируются".

Установка: Проще не бывает

YouPlot написан на Ruby и использует библиотеку UnicodePlot для отрисовки. Установить его можно несколькими способами, в зависимости от вашей операционной системы и предпочтений:

# Для пользователей macOS с Homebrew
brew install youplot

# Для Ruby-разработчиков через Gem
gem install youplot

# Через Nix
nix shell nixpkgs#youplot

# Через Guix
guix install youplot

# Через Conda (сначала Ruby, потом YouPlot)
conda install -c conda-forge ruby
conda install -c conda-forge compilers
gem install youplot

После установки вы получаете команду uplot (сокращение от youplot), готовую к работе.

Ключевые возможности: Графики на любой вкус

YouPlot поддерживает множество типов графиков, каждый из которых вызывается своей подкомандой. Давайте посмотрим на самые интересные из них.

Столбчатые диаграммы (Barplot)

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

ls -l | awk '{print $9, $5}' | sort -nk 2 | uplot bar -d ' '

Barplot Example

Гистограммы (Histogram)

Когда нужно понять распределение числовых данных. Допустим, вы сгенерировали 10 000 случайных чисел и хотите увидеть их распределение.

echo -e "from numpy import random;" \
        "n = random.randn(10000);"  \
        "print('\
'.join(str(i) for i in n))" \
| python3 \
| uplot hist --nbins 20

Histogram Example

Линейные графики (Lineplot)

Отлично подходят для визуализации временных рядов или функций. Представьте, что вы хотите построить график синусоиды.

python3 -c '
from math import sin, pi
data = "\n".join(f"{i*pi/50}\t{sin(i*pi/50)}" for i in range(101))
print(data)' | uplot line

Lineplot Example

Диаграммы рассеяния (Scatter) и плотности (Density)

Для исследования взаимосвязей между двумя или более переменными. Например, для анализа многомерных данных, таких как знаменитый набор данных IRIS.

cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot scatter -H -d, -t IRIS

Scatter Plot Example

cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot density -H -d, -t IRIS

Density Plot Example

Ящики с усами (Boxplot)

Позволяют быстро оценить распределение данных, медиану, квартили и выбросы.

cat test/fixtures/iris.csv | cut -f1-4 -d, | uplot boxplot -H -d, -t IRIS

Boxplot Example

Подсчеты (Count)

Удобная функция для быстрого подсчета частоты вхождений элементов и их визуализации в виде столбчатой диаграммы. Например, можно посчитать количество процессов по пользователям.

ps aux | awk '{print $1}' | uplot count

Count Plot Example

Кстати, для больших объемов данных авторы рекомендуют использовать комбинацию sort | uniq -c | sort перед uplot bar для лучшей производительности, что вполне в духе Unix-философии.

Интеграция с другими инструментами: Мощь Unix-way

Одна из главных прелестей YouPlot – его способность легко интегрироваться с другими утилитами командной строки. Вы можете использовать awk, cut, grep, sort, uniq и другие стандартные инструменты для предварительной обработки данных, а затем передавать их в uplot через пайпы. Это открывает огромные возможности для гибкого анализа и визуализации.

Разработчики YouPlot даже рекомендуют несколько полезных инструментов, которые отлично работают в связке:

  • csvtk: Мощный и быстрый инструмент для работы с CSV/TSV файлами.
  • GNU datamash: Для статистических операций в командной строке.
  • awk: Незаменимый инструмент для обработки текстовых данных.
  • xsv: Еще один быстрый инструмент для CSV.

Эта синергия позволяет создавать сложные аналитические цепочки прямо в терминале, не прибегая к тяжеловесным скриптам на Python или R для простых задач.

Выводы: Стоит ли попробовать YouPlot?

Безусловно! YouPlot – это не попытка заменить полноценные BI-системы или библиотеки вроде Matplotlib и ggplot2. Это, скорее, швейцарский нож для быстрой визуализации в консоли. Он создан для тех моментов, когда вам нужно мгновенно получить представление о данных, не отвлекаясь от текущей задачи.

Если вы часто работаете в терминале, обрабатываете текстовые данные, мониторите системы или просто любите эффективные CLI-инструменты, YouPlot станет отличным дополнением к вашему арсеналу. Он прост в установке, интуитивно понятен в использовании и удивительно функционален для своей ниши.

Попробуйте YouPlot – и, возможно, вы обнаружите, что многие задачи визуализации теперь решаются гораздо быстрее и приятнее, чем раньше. Удачи в освоении терминальных графиков!