Как использовать gnuplot для построения простой двумерной векторной стрелки?

Я впервые пытаюсь использовать gnuplot и не могу найти никаких инструкций, как это сделать. Ближайшее, что я нашел, было следующее:

http://gnuplot.sourceforge.net/docs_4.2/node259.html

построить 'file.dat' с использованием 1: 2: 3: 4 с векторной головой, заполненной lt 2

но я не могу найти объяснения по поводу "file.dat".

Так может ли кто-нибудь дать простой пример того, как нарисовать простую двумерную векторную стрелку? Спасибо.


person Mirrana    schedule 14.05.2013    source источник


Ответы (2)


В gnuplot есть очень хорошая встроенная справка / документация. Просто введите help plot или help vector, чтобы узнать больше о том, как строить векторы в gnuplot.

Стиль 2D vectors рисует вектор от (x, y) до (x + xdelta, y + ydelta).

В конце каждого вектора нарисована маленькая стрелка.

4 столбца: x y xdelta ydelta

Это означает, что ваш входной файл должен иметь 4 столбца, где первые два столбца определяют начальную (x, y) -позицию вектора / стрелки, а последние два - направление (x, y):

# file.dat
0   0   .5  .5
0   1   -.5 .5
1   1   1    0

Теперь набираем следующую команду

plot "file.dat" using 1:2:3:4 with vectors filled head lw 3

дает следующий результат: Построение векторов

Рисование векторов с помощью команды set arrow

Рассмотрите возможность использования команды set arrow, если вам нужно нарисовать только несколько векторов / стрелок (например, чтобы выделить некоторые точки на графике).

  set arrow 1 from pi/2,1 to pi/2,0 
  set arrow 2 from pi*3/2,-1 to pi*3/2,0 
  plot[0:2*pi] sin(x)

пример стрелки

person psibar    schedule 14.05.2013

Вы можете создать 'file.dat' в электронной таблице, сохранить его как текст и поместить в путь к gnuplot, используя команду cd, чтобы указать gnuplot его местоположение. Если вы не согласны с этим, посмотрите примеры использования '+', '++' и '-' в руководстве по gnuplot. Это «виртуальный файл данных». Обратите внимание, что первые два предназначены для точек данных с одним и двумя столбцами, то есть (x) или (x, y). Вам нужно будет использовать $1 и $2 в качестве переменных для вычисления dx и dy. Обязательно установить переменные xrange и yrange и isosamples для плотности, чтобы это работало.

Что-то типа....

set isosamples 30
set samples 30
set xrange [-10:10]
set yrange [-10:10]
plot '++' using 1:2:(0.1*sin($1)):(0.1*cos($2)) with vectors 
person userRoom237    schedule 23.05.2013