Gnuplot: различия между версиями

Материал из Поле цифровой дидактики
м 1 версия импортирована
 
Нет описания правки
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Карточка языка программирования
{{DigitalTool
|Ages=25
|Description='''Gnuplot''' — это мощная программа командной строки и графического интерфейса для создания двух- и трёхмерных графиков функций, данных и аппроксимаций. Программа работает на всех основных компьютерных платформах (Linux, Unix, Microsoft Windows, macOS, FreeBSD и многих других).
|FieldActivity=Innovative Designer
|Affordances=Gnuplot является '''одним из наиболее распространённых инструментов''' для визуализации научных данных благодаря своим возможностям и открытому коду.
|Dimension=2D
|Field_of_knowledge=Экономика, Большие данные, Статистика
|Purpose=Специальный прикладной язык
|Область применения=Образование
|Visual_Text_Blocks=Текст
|Website=http://www.gnuplot.info/
|Openness=Открытый
|End users=Учащиеся, Исследователи
|Address=http://www.gnuplot.info/
|Tool is made for=диаграммы
|ActiveNow=Project is active
|launch year=1986
|Remixing?=No
|distant_collab=Нет
|Language_Ru_Eng=English
|AI=Нет
}}
}}
=== GnuPlot литература: ===
==== Научные области применения ====
[http://book.pdfchm.net/Gnuplot-in-Action-Understanding-Data-with-Graphs/9781933988399/ Gnuplot in Action: Understanding Data with Graphs, Manning Publications, 2009]


http://i.pdfchm.net/7/e/16223/200/Gnuplot-in-Action-Understanding-Data-with-Graphs.jpg
{| class="wikitable"
! Область !! Применение !! Преимущества
|-
| '''Физика''' || Визуализация экспериментальных данных, моделирование распада радиоактивных изотопов || Поддержка планок погрешностей, аппроксимация данных теоретическими моделями
|-
| '''Химия и биология''' || Анализ экспериментальных результатов, построение кривых зависимости || Высококачественные графики для публикаций
|-
| '''Инженерия''' || Визуализация симуляций (механика, электротехника, строительство) || 3D-графики для FEA (анализ конечных элементов), обработка больших датасетов
|-
| '''Финансы''' || Анализ временных рядов, трендов фондового рынка || Поддержка скользящих средних, полос Боллинджера, автоматизация через скрипты
|-
| '''Статистика''' || Построение гистограмм, box plots, регрессионный анализ || Нелинейная многомерная аппроксимация данных (алгоритм Левенберга-Марквардта)
|}


Ссылки:
=== Основные характеристики ===
* http://ru.wikipedia.org/wiki/Gnuplot
* http://fsweb.info/calculations/gnuplot.html Gnuplot портативная программа для визуализации данных и создания графиков функций (используя режим командной строки) для операционных систем UNIX, IBM OS/2, MS Windows, DOS, Macintosh, VMS, Atari и многих других. Эта программа защищена авторским правом, но свободна для распространения
* http://linux.unn.ru/debian/node/13 - в нижегородском репозитории свободного ПО
* http://wiki.linuxformat.ru/index.php/LXF71:Gnuplot


=== Gnuplot команды ===
* '''Форматы вывода:''' PNG, EPS, SVG, JPEG, PDF, LaTeX/TikZ и многие другие
* '''Типы графиков:''' 2D, 3D, контурные карты, параметрические уравнения
* '''Системы координат:''' линейные, логарифмические, полярные, географические
* '''Временные ряды:''' поддержка данных с датами и временем
* '''Статистика:''' гистограммы, box plots, violin plots
* '''Аппроксимация данных:''' нелинейная многомерная weighted data fitting


* Как вставлять данные в графику? http://www.mediawiki.org/wiki/Extension:Gnuplot
=== Пример кода ===
*# Подготовить текстовый файл с данными, загрузить его и потом использовать внутри gnuplot
*# Вставить данные непосредственно в тело скрипта. Данные вводятся линия за линией. Каждая линия закрывается знаком '''e'''.


<syntaxhighlight lang="gnuplot">
# Простой пример построения графика
set title "Математические функции"
set xlabel "x"
set ylabel "f(x)"
set grid
plot sin(x) title "sin(x)", \
    cos(x) title "cos(x)", \
    exp(-x) title "exp(-x)"
</syntaxhighlight>


<gnuplot>
set xlabel 'days'
plot '-' using 1:2 t 'Days' with linesp lt 1 lw 3, \
'-' using 1:2 t 'cubic approximation'  with linesp lt 2 lw 3
1 2
2 8
3 15
e
1 2
2 50
3 70
</gnuplot>


----
=== Возможности для статистики ===
<gnuplot>
set xlabel 'days'
plot '-' using 1:2 t 'Days' with linesp lt 1 lw 3, \
'-' using 1:2 t 'cubic approximation'  with linesp lt 2 lw 3
1 2
2 8
3 16
e
1 2
2 50
3 70
</gnuplot>


<nowiki>
Gnuplot предоставляет мощные инструменты статистического анализа:
plot '-' using 1:2 t 'Days' with linesp lt 1 lw 3, \
'-' using 1:2 t 'cubic approximation'  with linesp lt 2 lw 3
1 2
2 8
3 15
e
1 2
2 50
3 70
</nowiki>


И здесь как-то удается собрать несколько линий на одном рисунке
==== Аппроксимация данных (Data Fitting) ====
----


=== Описания и пояснения к графикам ===
'''Алгоритм Левенберга-Марквардта''' для нелинейной регрессии:
* По оси х - set xlabel 'Days or something'
* По оси y - set ylabel 'Number'
* Подписи к данным?  задается командой t


----
<syntaxhighlight lang="gnuplot">
# Аппроксимация экспериментальных данных
f(x) = a * x + b
fit f(x) 'data.txt' using 1:2:3 via a, b
plot 'data.txt' using 1:2:3 with errorbars, f(x)
</syntaxhighlight>


=== Команды ===
Gnuplot автоматически вычисляет:
* plot '-' данные считываются из строк, которые следуют ниже
* Параметры аппроксимации с асимптотическими стандартными ошибками
** plot '-' using 1:2 title 'A'  "''', \'''"
* χ² (хи-квадрат) и степени свободы
** '-' lt1
* Корреляционную матрицу параметров
* index
* Меры качества аппроксимации (WSSR, RMS residuals)
* every
* '''set''' - установка параметров  
** set logscale - показывать по логарифмической шкале
* '''unset'''
** unset border
* using - например 1:2 - какие колонки цифр нужно использовать при работе
* smooth
* smooth acsplines
* with lines
* with points
* with boxes
* with linepoints
* t title - подпись к линии


=== Столбцы ===
==== Статистические графики ====
{{:Gnuplot/Столбцы}}


===  Math ===
* '''Гистограммы''' — распределение данных с настраиваемыми bins
<gnuplot>
* '''Box plots''' — квартили, медиана, выбросы
plot '-' using 1:(sqrt($2)) title 'Authors' with line lt 1 lw 2 ,\
* '''Violin plots''' — комбинация box plot и плотности распределения
1  31738     
* '''Scatter plots''' — с линиями регрессии и доверительными интервалами
2  31741
3  31762
4  31782
5  31801
6  31815
</gnuplot>


=== Every ===
Every - указывает интервал, через который берутся данные - например, в следующем списке каждое четвертое значение, начиная с первого (нулевого). Можно менять начальное значение, а вот можно ли вставлять несколько графиков - непонятно.
<gnuplot>
plot '-' every 4::0 using 1:2 t 'Users' with linesp lt 1 lw 3
1 31711
1 133241
1 36449
1 55535
2 31718
2 133248
2 36450
2 55536
3 31738
3 133291
3 36468
3 55553
4 31741
4 133337
4 36477
4 55583
5 31762
5 133361
5 36480
5 55595
6 31782
6 133397
6 36487
6 55611
7 31815
7 133457
7 36497
7 55637
</gnuplot>


=== Толщина линии ===
* lw 1 - самая тонкая
=== Цвета линий===
* lt1 - Красный
* lt2 - Зеленый
* lt3 - Синий
* lt4 - Фиолетовый
* lt5 - Голубой
* lt6 - Темно-оранжевый
* lt7 - Желтый
* lt8 - Темно-синий
* lt9 - Темно-желтый
* lt10 Зеленый
==== ????  ====
Например:


<gnuplot>
== GnuPlot литература: ==
set xlabel 'days'
[http://book.pdfchm.net/Gnuplot-in-Action-Understanding-Data-with-Graphs/9781933988399/ Gnuplot in Action: Understanding Data with Graphs, Manning Publications, 2009]
set ylabel 'number'
plot '-' title 'A' using 1:2 with linespoints , '' using 1:3 with lines
1 1358 90236
2 23033 105697
3 27124 12100
4 31682 133193
5 31767 133365
</gnuplot>


=== Летопись/Gnuplot ===
http://i.pdfchm.net/7/e/16223/200/Gnuplot-in-Action-Understanding-Data-with-Graphs.jpg
{{:Летопись/Gnuplot}}
 
 
 
=== Gnuplot - примеры  ===
 
==== 1 ====
* Только  <nowiki><gnuplot> plot sin(x) </gnuplot></nowiki> а какой результат
<gnuplot> plot sin(x) </gnuplot>
 
 
==== 2 ====
<gnuplot>
plot '-' using 1:2 t 'quadratic approximation' with linespoints lt 1 lw 3, \
'-' using 1:2 t 'cubic approximation' with linespoints lt 2 lw 3
1 2
2 4
3 8
e
1 3
2 9
3 27
e
</gnuplot>
 
----
 
==== 3 ====
<gnuplot>
set size 0.4,0.4
set xlabel "x"
set ylabel "y"
plot [x=-4:4] x**2-3, -x**2
</gnuplot>
 
 
==== 4  ====
 
<gnuplot>
plot '-' using 1:2 t 'quadratic approximation' with linesp lt 1 lw 3, \
'-' using 1:2 t 'cubic approximation' with linesp lt 2 lw 3
1 2
2 4
3 8
e
1 3
2 9
3 27
e
</gnuplot>
 
----
 
<gnuplot>
plot [-5*pi:5*pi] sin(x)/x with lines lt 1 lw 5, 1/x with lines lt 2 lw 1
</gnuplot>


== Ссылки: ==
* http://ru.wikipedia.org/wiki/Gnuplot
* http://fsweb.info/calculations/gnuplot.html Gnuplot портативная программа для визуализации данных и создания графиков функций (используя режим командной строки) для операционных систем UNIX, IBM OS/2, MS Windows, DOS, Macintosh, VMS, Atari и многих других. Эта программа защищена авторским правом, но свободна для распространения
* http://linux.unn.ru/debian/node/13 - в нижегородском репозитории свободного ПО
* http://wiki.linuxformat.ru/index.php/LXF71:Gnuplot
* '''web''' https://hostcat.fhsu.edu/cdclark/static/apps/gnuplot/


{{#network:}}


[[Категория:Язык программирования]]
[[Категория:DigitalTool]]

Текущая версия от 12:58, 31 октября 2025

Краткое описание инструмента Gnuplot — это мощная программа командной строки и графического интерфейса для создания двух- и трёхмерных графиков функций, данных и аппроксимаций. Программа работает на всех основных компьютерных платформах (Linux, Unix, Microsoft Windows, macOS, FreeBSD и многих других).
Возможности Gnuplot является одним из наиболее распространённых инструментов для визуализации научных данных благодаря своим возможностям и открытому коду.
Трудности использования
Область знаний Экономика, Большие данные, Статистика
Область применения Образование
Поясняющее видео
Веб-сайт http://www.gnuplot.info/
Пользователи Учащиеся, Исследователи
Используется для создания (проведения) диаграммы
Разработчик
Сообщество вокруг средства
Лицензия
Год первого релиза 1986
Совместное сетевое использование Нет
Какой язык основной English
Есть ли поддержка Искусственным Интеллектом Нет

Научные области применения

Область Применение Преимущества
Физика Визуализация экспериментальных данных, моделирование распада радиоактивных изотопов Поддержка планок погрешностей, аппроксимация данных теоретическими моделями
Химия и биология Анализ экспериментальных результатов, построение кривых зависимости Высококачественные графики для публикаций
Инженерия Визуализация симуляций (механика, электротехника, строительство) 3D-графики для FEA (анализ конечных элементов), обработка больших датасетов
Финансы Анализ временных рядов, трендов фондового рынка Поддержка скользящих средних, полос Боллинджера, автоматизация через скрипты
Статистика Построение гистограмм, box plots, регрессионный анализ Нелинейная многомерная аппроксимация данных (алгоритм Левенберга-Марквардта)

Основные характеристики

  • Форматы вывода: PNG, EPS, SVG, JPEG, PDF, LaTeX/TikZ и многие другие
  • Типы графиков: 2D, 3D, контурные карты, параметрические уравнения
  • Системы координат: линейные, логарифмические, полярные, географические
  • Временные ряды: поддержка данных с датами и временем
  • Статистика: гистограммы, box plots, violin plots
  • Аппроксимация данных: нелинейная многомерная weighted data fitting

Пример кода

# Простой пример построения графика
set title "Математические функции"
set xlabel "x"
set ylabel "f(x)"
set grid
plot sin(x) title "sin(x)", \
     cos(x) title "cos(x)", \
     exp(-x) title "exp(-x)"


Возможности для статистики

Gnuplot предоставляет мощные инструменты статистического анализа:

Аппроксимация данных (Data Fitting)

Алгоритм Левенберга-Марквардта для нелинейной регрессии:

# Аппроксимация экспериментальных данных
f(x) = a * x + b
fit f(x) 'data.txt' using 1:2:3 via a, b
plot 'data.txt' using 1:2:3 with errorbars, f(x)

Gnuplot автоматически вычисляет:

  • Параметры аппроксимации с асимптотическими стандартными ошибками
  • χ² (хи-квадрат) и степени свободы
  • Корреляционную матрицу параметров
  • Меры качества аппроксимации (WSSR, RMS residuals)

Статистические графики

  • Гистограммы — распределение данных с настраиваемыми bins
  • Box plots — квартили, медиана, выбросы
  • Violin plots — комбинация box plot и плотности распределения
  • Scatter plots — с линиями регрессии и доверительными интервалами


GnuPlot литература:

Gnuplot in Action: Understanding Data with Graphs, Manning Publications, 2009

http://i.pdfchm.net/7/e/16223/200/Gnuplot-in-Action-Understanding-Data-with-Graphs.jpg

Ссылки: