- Диаграмма рассеяния образцов из текстового файла.
- Логарифмическая спираль.
gnuplot — это программа с интерфейсом командной строки и графическим интерфейсом , которая может генерировать двух- и трехмерные графики функций , данных и подгонок данных . Программа работает на всех основных компьютерах и операционных системах ( Linux , Unix , Microsoft Windows , macOS , FreeDOS и многих других). [3] Первоначально выпущенный в 1986 году, его авторами являются Томас Уильямс, Колин Келли, Рассел Лэнг, Дэйв Коц, Джон Кэмпбелл, Гершон Элбер, Александр Ву «и многие другие». [4] Несмотря на свое название, это программное обеспечение не является частью проекта GNU .
gnuplot может создавать выходные данные непосредственно на экране или во многих форматах графических файлов, включая переносимую сетевую графику (PNG), инкапсулированный PostScript (EPS), масштабируемую векторную графику (SVG), JPEG и многие другие. Он также способен создавать код LaTeX , который можно включать непосредственно в документы LaTeX, используя шрифты LaTeX и мощные возможности записи формул. Программу можно использовать как в интерактивном, так и в пакетном режиме с помощью скриптов. [5]
gnuplot может читать данные в нескольких форматах, включая возможность чтения данных на лету, сгенерированных другими программами ( конвейерная обработка ), создавать несколько графиков на одном изображении, создавать 2D, 3D, контурные графики, параметрические уравнения, поддерживает различные линейные и нелинейные координаты. системы, проекции, чтение и представление географических и временных данных, коробчатые диаграммы различных форм, гистограммы, метки и другие пользовательские элементы на графике, включая формы, текст и изображения, которые можно задавать вручную, вычислять скриптом или автоматически из ввода данные.
gnuplot также предоставляет возможности сценариев, циклов, функций, обработки текста, переменных, макросов, произвольную предварительную обработку входных данных (обычно по столбцам), а также возможность выполнять нелинейную многомерную подгонку взвешенных данных с несколькими наборами (см. Кривая подгонка и алгоритм Левенберга-Марквардта ).
Основной код gnuplot запрограммирован на C. Модульные подсистемы вывода через Qt , wxWidgets и LaTeX/TikZ/ConTeXt написаны на C++ и Lua .
Код ниже создает график справа.
установить заголовок «Некоторые математические функции» установить xrange [ -10 : 10 ] установить yrange [ -2 : 2 ] установить график нулевой оси ( x / 4 ) ** 2 , sin ( x ) , 1 / x
Название этой программы изначально было выбрано во избежание конфликтов с программой под названием «newplot» и изначально было компромиссом между «llamaplot» и «nplot». [6]
Поддержка ежедневных и еженедельных форматов Epidemic в версии 5.4.2 обусловлена потребностями в данных о пандемическом коронавирусе. [7]
Несмотря на название gnuplot, он не назван в честь проекта GNU , не является его частью и не связан с ним , а также не использует Стандартную общественную лицензию GNU . Его назвали первоначальными авторами в рамках компромисса, каламбурив на словах gnu (животное) и newplot (запланированное имя, которое было отброшено, поскольку оно уже использовалось). [9]
Официальный исходный код gnuplot распространяется свободно, но его модифицированные версии — нет. Лицензия gnuplot позволяет вместо этого распространять исправления для официальных выпусков, опционально сопровождаемые официально выпущенным исходным кодом. Двоичные файлы могут распространяться вместе с немодифицированным исходным кодом и любыми примененными к нему исправлениями. Контактная информация должна быть предоставлена вместе с производными работами для технической поддержки модифицированного программного обеспечения. [2]
Предоставляется разрешение на изменение программного обеспечения, но не право на распространение полного измененного исходного кода. Модификации распространяются в виде патчей к выпущенной версии.
Несмотря на это ограничение, gnuplot принимается и используется многими пакетами GNU и широко включен в дистрибутивы Linux , включая более строгие, такие как Debian и Fedora . Определение открытого исходного кода OSI и Руководство по свободному программному обеспечению Debian специально допускают ограничения на распространение измененного исходного кода при условии явного разрешения на распространение как исправлений, так и исходного кода.
Новые модули gnuplot (например, Qt, wxWidgets и драйверы cairo) были предоставлены на условиях двойного лицензирования, например, gnuplot + BSD или gnuplot + GPL.
Некоторые сторонние программы имеют графические пользовательские интерфейсы , которые можно использовать для создания графиков с использованием gnuplot в качестве механизма построения графиков. К ним относятся:
Другие программы, использующие gnuplot, включают:
gnuplot можно использовать на различных языках программирования для графических данных, включая C++ (через g3p), Perl (через PDL и другие пакеты CPAN ), Python (через gnuplotlib, Gnuplot-py и SageMath ), R через (Rgnuplot), Julia (через Gaston.jl), Java (через JavaGnuplotHybrid и jgnuplot), Ruby (через Ruby Gnuplot), Ch (через Ch Gnuplot), Haskell (через Haskell gnuplot), Fortran 95 , [21] Smalltalk ( Squeak и GNU Smalltalk ) и Rust ( через RustGnuplot).
gnuplot также поддерживает конвейерную обработку , что типично для скриптов. [22] Для графики, управляемой скриптами, gnuplot — одна из самых популярных программ. [ нужна цитата ]
Gnuplot позволяет пользователю отображать или сохранять графики несколькими способами: [23] [24]