Jika saya mengerti dengan benar, inilah yang Anda inginkan:
for FILE in *; do
gnuplot <<- EOF
set xlabel "Label"
set ylabel "Label2"
set title "Graph title"
set term png
set output "${FILE}.png"
plot "${FILE}" using 1:2:3:4 with errorbars
EOF
done
Ini mengasumsikan file Anda semua ada di direktori saat ini. Di atas adalah skrip bash yang akan menghasilkan grafik Anda. Secara pribadi, saya biasanya menulis file perintah gnuplot (sebut saja, katakan, gnuplot_in
), menggunakan skrip dalam beberapa bentuk, dengan perintah di atas untuk setiap file dan plot menggunakannya gnuplot < gnuplot_in
.
Sebagai contoh, dengan python:
#!/usr/bin/env python3
import glob
commands=open("gnuplot_in", 'w')
print("""set xlabel "Label"
set ylabel "Label2"
set term png""", file=commands)
for datafile in glob.iglob("Your_file_glob_pattern"):
# Here, you can tweak the output png file name.
print('set output "{output}.png"'.format( output=datafile ), file=commands )
print('plot "{file_name}" using 1:2:3:4 with errorbars title "Graph title"'.format( file_name = datafile ), file=commands)
commands.close()
di mana Your_file_glob_pattern
ada sesuatu yang menggambarkan penamaan file data Anda, baik itu *
atau *dat
. Alih-alih glob
modul, Anda dapat menggunakan os
juga tentu saja. Apa pun yang menghasilkan daftar nama file, sungguh.
Solusi Bash, menggunakan file perintah sementara:
sumber
Ini mungkin bisa membantu.
Jalankan file skrip sebagai
gnuplot filename
.Klik di sini untuk perincian lebih lanjut.
sumber