Создать точечный график

Файл (1. arg) создаст (точечный график) для n. столбец (ось x, 2. arg) и m. столбец (ось Y, 3. arg)

функция называется myfun sourcefile 1 3 для точечной диаграммы 1. и 3. столбца из файла sourcefile.

#!/bin/bash/gnuplot

myfun(){
 plot "$1" using $2:$3
}
myfun sourcefile 1 3

В gnuplot> plot sourcefile использование 1:3 работает отлично. Я хочу, чтобы он работал внутри функции. Как?

2 ответа

Решение

Я бы предложил использовать здесь документ оболочки в этом случае

#!/bin/bash

function myfun {
cat << EOF | gnuplot -p
plot "$1" using $2:$3
EOF
}

затем

myfun sourcefile 1 3

Я действительно не знаю, что это за сценарий. Где вы его нашли? .../bash/gnuplot кажется, что кто-то действительно запутался.

Но если у вас есть файл с данными, назовите его sourcefileсо структурой

whatever  x-data y-data
whatever  x-data y-data
whatever  x-data y-data

Вы можете получить график рассеяния столбца 3 против ввода столбца 2 gnuplotи в командной строке:

plot "sourcefile" using 2:3

(Хотя ваш сценарий, кажется, делает plot "sourcefile" using 1:3в отличие от вашего описания и без кавычек, что является синтаксической ошибкой в ​​gnuplot, если sourcefile переменная, содержащая имя файла).

Я рекомендую вам прочитать http://people.duke.edu/~hpgavin/gnuplot.html

Другие вопросы по тегам