2013-05-14 3 views
4

Это мой первый раз, когда я пытаюсь использовать gnuplot, и я не могу найти никаких инструкций о том, как это сделать. Ближайший я нашел это:Как использовать gnuplot для построения простой 2-й векторной стрелки?

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

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

, но я не могу найти любое объяснение о файле file.dat.

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

ответ

10

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

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

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

4 колонки: ху Xdelta ydelta

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

# 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 

дает следующий результат: Plotting vectors

рисования векторов с помощью команды 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) 

set arrow example

1

Вы можете создать 'file.dat' в таблице сохранить его как текст и поместить его в пути Gnuplot с помощью команды cd указать Gnuplot его расположения. Если это не согласуется с вами, посмотрите примеры, используя '+' и '++' и '-' в руководстве по gnuplot. Это «файл виртуальных данных». Обратите внимание, что первые два предназначены для одной и двух точек данных столбца, то есть (x) или (x, y). Вам нужно будет использовать $1 и $2 в качестве переменных для вычисления dx и dy. Обязательно установить переменные и 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 
Смежные вопросы