GNUPLOT

-не так Часто Задаваемые Вопросы-

обновлено 2010/12/26

О параметрических функциях

Использование параметров

В обычном двумерном построении в gnuplot координата Y выражается y=f(x), однако можно использовать параметрическое задание функции, использующее параметр t,

   x = f(t)
   y = g(t)

С помощью этого выражения gnuplot может рисовать более сложные функции. Отметим, что 3D построения параметрической поверхности, задаваемой параметрами u,v, дается в разделе построения сферических гармоник.

В первую очередь необходимо использовать команду set parametric, чтобы gnuplot определил параметрическую переменную для функции. Затем, команда plot, выполняющая построение функции f(t) координаты X и функцит g(t) для координаты Y, задается как plot f(t),g(t).

up

Построение вертикальных линий

Чтобы провести простейшую вертикальную линию, не выражающуюся формой y=f(x), а заданную как x=const. Эта функция может быть определена как:

   x=const
   y=t

с параметром t, когда t различен. Диапазон t контролируется командой set trange.

gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces
gnuplot> const=3
gnuplot> set trange [1:4]
gnuplot> set xrange [0:5]
gnuplot> set yrange [0:5]
gnuplot> plot const,t
sampleQ2.1

В данном случае вертикальная линия нарисованна в x=3. Использование set trange [1:4] , определило диапазон от 1 до 4. Если trange не установлен, вертикальная линия будет отрисована от верхней до нижней границы.

up

Изобразить окружность, многоугольник

Параметрическое задание окружности:

   x=sin(t)
   y=cos(t)

окружность может быть нарисована при изменении параметра t от 0 до 2pi. График принимает вид "квадрата" и диапазон t задается опцией команды plot.

gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces
gnuplot> set size square
gnuplot> set xrange [-1:1]
gnuplot> set yrange [-1:1]
gnuplot> plot [0:2*pi] sin(t),cos(t)
sampleQ3.1

Параметр t не изменяется непрерывно и фактически управляется значениями, установленными командой set samples. По умолчанию значение равно 100. В случае set samples 8, gnuplot вычисляет только 8 значений t от 0 до 2*pi, и график становиться семиугольником. Если необходим построить N-угольник, задается set samples N+1.


sampleQ3.2

2D параметрическое представление удобно для рисования функции, которая находится в полярных координатах. 2D полярная координатаимеет 2 переменные: r и угловую theta. gnuplot выражает параметр t для theta, а радиус r выражается через функцию угла, а именно r(t). Координата (x,y) дается из:

   x=r(t)*cos(t)
   y=r(t)*sin(t)

Окружность - особый случай, когда r(t)=const. Когда радиус пропорционален t, получается спираль.

gnuplot> set xrange [-10*pi:10*pi]
gnuplot> set yrange [-10*pi:10*pi]
gnuplot> plot [0:10*pi] t*sin(t),t*cos(t)
sampleQ3.3

Следующий пример показывает график кардиоды r(t)=const*(1+cos(t)).

gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces
gnuplot> r(t) = 1+cos(t)
gnuplot> plot [0:2*pi] r(t)*cos(t),r(t)*sin(t)
sampleQ3.4
up

Поменять местами оси X и Y

Обычная функция имеет вид y=f(x), но параметрическая позволяет делать график x=f(y). Значения Y такие же как и t и значения x вычисляются функцией f(t).

gnuplot> set parametric

        dummy variable is t for curves, u/v for surfaces
gnuplot> c=2*pi
gnuplot> set size square
gnuplot> set trange [-c:c]
gnuplot> set xrange [-c:c]
gnuplot> set yrange [-c:c]
gnuplot> plot c*sin(t),t with lines, t,c*cos(t) with impulses
sampleQ4.1

Показаны 2 функции, одна (зеленые линии) y=2pi*cos(x), другая (красная толстая линия) x=f(t)=2pi*sin(y).

Опция with impulse рисует вертикальную линию от оси Y=0. Если используется with impulses для красной кривой x=2pi*sin(y), то получается вертикальная линия, не горизонтальная.


up