У меня есть данные временных рядов, которые я хочу визуализировать как двумерный график.
Входные данные имеют формат ISO-date и значение разделено пробелом, по одной записи на строку:
2010-10-21 23
2010-10-22 32
etc.
На выходе должен быть красивый 2-мерный сюжет. Базовые требования:
- вывод в окно X11 (в качестве предварительного просмотра) и в файл png
- Ось X должна понимать даты и естественно масштабировать данные, например, разрыв между 3 днями должен быть в три раза больше, чем разрыв между 1 днем
- должен вызываться из скрипта
- хороший вывод и удобный в использовании
Бонус:
- вывод svg
Я пытался, gnuplot
и это работает - у него есть поддержка даты:
gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d"
gnuplot> plot "test.dat" using 1:2
Но у меня есть некоторые проблемы с gnuplot:
- с настройками по умолчанию графики выглядят очень некрасиво
- Трудно найти что-то в руководстве - например, при построении точек, как использовать маленькие кружки, заполненные вместо знака по умолчанию «+»?
- Оболочка gnuplot - это боль в шее - она не использует readline, она не работает, завершение команды - шутка, я не знаю, как включить ярлыки vi - или, если они поддерживаются, как насчет обратного поиска и т. д.
Таким образом, мой вопрос: каковы альтернативы для визуализации данных временных рядов?
Или я преувеличиваю проблемы с gnuplot?
software-rec
maxschlepzig
источник
источник
rrdtool create ...
один раз, чтобы настроить базу данных RRD,rrdtool update ...
один раз для фрагмента данных иrrdtool graph ...
создать график.R лучше в таких вещах, чем Gnuplot, потому что:
Это полная среда программирования с C и Fortran-совместимыми API-расширениями . Если ваш компьютер может что-то сделать, вы можете сделать это с помощью R.
Многие уже предоставили свои решения общих проблем в CRAN : Комплексная сеть R-архивов. Вы можете найти
zoo
иggplot2
пакеты, полезные для этой задачи.Есть много книг по анализу временных рядов и R в целом .
R имеет все, что вы просили:
Выходы в X11, PNG или (с дополнением ) SVG
Заполненные кружки для точек графика: пройти
pch=19
илиpch=20
в par () или точки () . Предопределено много других символов точек построения, а также весь Юникод, если вы используете шрифт с поддержкой Юникода.Графики с учетом времени: если встроенные не имеют желаемого масштабирования, вы можете построить все, что вам нужно, с помощью примитивов построения R
Вызывается из скрипта: используйте
#!/usr/bin/Rscript
строку shebang в вашем программном файле RПриятно и удобно: есть интерфейсы GUI, если вам нравится, и если вам не нравится, среда, управляемая командами по умолчанию, имеет много приятных функций, таких как возможность видеть исходный код R многих встроенных операций, что помогает чтобы узнать, как система составлена. (Да, большая часть R написана на R!)
Симпатичные сюжеты: сглаживание используется по умолчанию, если R построен на Cairo, что будет, если это недавняя сборка на Linux. Старые версии R могут не иметь встроенного AA. Чтобы узнать о возможностях R, если вы потратите на это немного времени, проверьте это:
(Нажмите на изображение для статьи, описывающей это.)
Что касается командной строки gnuplot, вы можете создать ее для поддержки GNU readline, BSD libedit или, в качестве альтернативы, пользовательской встроенной схемы редактирования командной строки. (Это согласно п.20 руководства .) У меня есть gnuplot 3.7 на одной машине и 4.0 на другой, и они обе собраны с readline. Ваш двоичный файл построен без каких-либо из них?
источник