цикл в gnuplot - другая папка - PullRequest
0 голосов
/ 12 марта 2020

Как использовать эту команду в gnuplot? Создается одна фигура, но затем эта цифра читается как файл данных, и это приводит к ошибке.

j=0;do for [i in system("ls")] { j=j+1; set term png; set output ''.i.'.png' ; p i w p lc rgb "navy" t ''.i }

Я также пытался:

j=0;do for [i in system (/media/)] { j=j+1; set term png; set output ''.i.'.png' ; p i w p lc rgb "navy" t ''.i }

, но это недопустимое выражение. Как установить другую папку для выходов?

Или как отобразить все данные в каталоге для различных фигур? Возможно ли использовать для файла что-то вроде * .r в gnuplot?

1 Ответ

1 голос
/ 12 марта 2020

Хотя, исходя из используемых команд, ваш вопрос находится под Linux, логика такая же, как у Windows. Ниже следует пример. Предположим, есть пять папок (folder01 до folder05), каждая из которых содержит один файл .txt (file01.txt, ..., file 05.txt).

Следующий скрипт должен быть на родительском каталог, т. е. папка, которая содержит другие папки.

set terminal pngcairo

# Under Windows, it saves the all .txt filenames.
# The search includes all subdirectories.
files = system("dir /b /s *.txt")

# Individual png files
do for [file in files]{
    set output file[:strlen(file)-4] . '.png'
    plot file u 1:2 w lp pt 6 pi -1 t file
}

# OR

# All files together
set key Left left reverse
set out "all_plots.png"
plot for [file in files] file u 1:2 w lp pt 6 pi -1 t file

Результаты отдельных графиков (в виде миниатюр):

imageimage imageimageimage

Результаты всех графиков вместе:

all plots together

...