У меня есть коллекция файлов csv с тем же 2-х столбчатым форматом. Я хотел бы создавать отдельные графики разброса xy, соответствующие каждому файлу, но с тем же стилем. Единственное, что должно измениться, это входные и выходные имена файлов. Как это сделать?Как создать сборку csv-файлов в gnuplot?
ответ
Решение, отправленное andyras, отлично работает. Однако в этих случаях «ЗДЕСЬ» файлы, как правило, лучше, так как это позволяет избежать порождая дополнительный процесс и так как вы не будете иметь проблем с смешивая одинарные и двойные кавычки ...
for file in $(echo *.dat); do
gnuplot <<EOF
set terminal post enh
set output "output_${file}.ps"
set datafile separator ',' #csv file
plot "$file" u 1:2
EOF
done
Сначала создайте текстовый файл, содержащий всю информацию о стиле, скажем gplot_prefix.txt
. Затем я предполагаю, что у вас есть шаблон, который соответствует всем файлам, которые вы хотите построить, например *.dat
. Затем сделать ЗШ скрипт следующим образом:
foreach arg in [email protected]
filename=${arg}_plotfile.pl
cp gplot_prefix.txt ${filename}
echo set output ${arg}.png >>${filename}
echo plot \"${arg}\" u 1:2 >>${filename}
gnuplot ${filename}
rm ${filename}
(это может иметь ошибки, мой ЗШ не работает правильно прямо сейчас) и назовите его как
./plotscript.zsh *.dat
Вы можете создать обертку Баш скрипт и сохранить его как plot.sh
:
#!/bin/bash
echo "set terminal postscript enhanced
set output 'output_$1.eps'
plot '$1'
Допустим файлы ваши данные все имеют расширение .dat
. Вы использовали бы это, позвонив по телефону
for datfile in $(ls *dat) ; do ./plot.sh $datfile ; done
в командной строке в bash.
Oh, @Dan отвечал довольно почти такое же решение. – andyras
Мне нравится этот, потому что он чище. Благодаря! – Derrick
@ Редакторы: Спасибо :). – mgilson