Комментарии 26
Да из тьма разных: красивый и гибкий Матплотлиб (+ надстройки типа seaborn); красивый и интерактивный plotly (обёртка на d3.js); быстрый vispy (с GPU, когда прям дофигища точек); специфический, но невероятно удобный после привыкания ggplot (вообще это R, но уже вроде что-то очень похожее и в питоне запилили) — и это ещё без платных пакетов типа Математики (там тоже графическая система крутая).
Если уж прям откровенно, то и в Экселе можно неплохие графики делать (не хорошие, но и не ужасные), но после пользования инструментами типа pandas (или экосистемой R) возвращаться к GUI и "мышатничеству" совсем не хочется.
set xtics pi/2
set x2tics -9/5*pi,pi/3 # здесь нет метки в 0, так как левая граница не кратна шагу
plot sin(x)
Так на двух осях 0 не совпадает! Решение такое:
set link x2
Ещё при экспорте в терминалы с поддержкой LaTeX можно использовать LaTeX-формулы в легендах, на осях и в подписях. В итоге текст, цифры и формулы на графиках получаются такими же, как и во всем тексте. Это выглядит очень профессионально.
Ещё при экспорте в терминалы с поддержкой LaTeX можно использовать LaTeX-формулы в легендах, на осях и в подписях. В итоге текст, цифры и формулы на графиках получаются такими же, как и во всем тексте. Это выглядит очень профессионально.
Могли бы привести рабочий пример, пожалуйста?
Поделюсь своим опытом: я использовал R и R Studio для похожей работы — анализ данных, отрисовка графики и экспорт в PDF.
Схема примерно такая: данные собираются или напрямую с серверов, или через Prometheus, и складываются в БД sqlite. Оттуда их берет скрипт на R, обрабатывает данные, делает прогнозы, рисует страницы, разметку, графики и экспортирует в PDF.
Пример отчета тут (сорри за звездочки — NDA):
Плюсы R\R Studio по сравнению с gnuplot:
- Сбор, анализ, вычисления, графика, экспорт — все в одной среде, не выходя из IDE
- R — полноценный (хоть и специализированный) язык программирования. Для визуализации данных доступны условные операторы, циклы, переменные и т.д.
- Полный набор инструментов и функций для работы со статистикой — не даром корни R происходят от S — проприетарной среды для работй со статистическими данными
- Куча дополнительных пакетов — профессиональные палитры, новые источники данных, поддержка разных форматов графики, и т.д.
- Можно делать разметку страницы — делить ее на секции, делать титульные листы, таблицы и т.д.
- Можно использовать пакет gnuplot — тогда график будет рисовать именно он, а не сам R. Использовал его для особо изящных и сложных 3D-графиков
Минусы:
- Полноценный язык программирования и IDE — придется потратить время на изучение новых концепций и вещей
- Рисование графиков часто превращается в отладку программу. Хорошо хоть иснструменты отладки прямо в IDE есть :)
- Не все графики можно нарисовать встроенными функциями — тут на помощь приходит интеграция с gnuplot :)
Так, понимаю, вы в R использовали один из пакетов (ggplot2 или lattice), а не базовую графику? Ваш комментарий можно доработать до полноценной статьи, кстати )
А можно ли изменить направление осей, чтобы значения росли сверху вниз и справа налево?
Например, есть данные
x y
2018 301
1844 514
1107 695
544 820
и нужно, чтобы точка 2018;301 отображалась слева вверху, а точка 544;820 справа внизу.
Не нашёл как этого добиться (кроме как сделать исходные значения отрицательными, но тогда придётся потом открывать готовый график в графическом редакторе и затирать минусы у чисел).
Требуется следующее:
Это диаграмма гласных.
Получена, как описал выше: сделал в исходных данных все координаты отрицательными, сгенерировал gnuplot'ом картинку, открыл в графическом редакторе и стёр минусы у чисел. Хотелось бы подобное делать без таких костылей.
set xrange [2500:0]
set yrange [800:200]
Чтобы были автоматически правильно расставлены пределы не знаю как сделать, но могу посоветовать делать два прохода и использовать GPVAL_DATA_X_MAX и подобные переменные окружения, как посоветовали тут
https://stackoverflow.com/questions/13580236/gnuplot-max-and-min-values-in-a-range#13583689
Gnuplot и с чем его едят