Nếu tôi hiểu chính xác, đây là những gì bạn muốn:
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
Điều này giả định các tập tin của bạn là tất cả trong thư mục hiện tại. Trên đây là một tập lệnh bash sẽ tạo ra biểu đồ của bạn. Cá nhân, tôi thường viết một tệp lệnh gnuplot (gọi nó là, giả sử gnuplot_in
), bằng cách sử dụng một tập lệnh có dạng nào đó, với các lệnh trên cho mỗi tệp và vẽ biểu đồ bằng cách sử dụng gnuplot < gnuplot_in
.
Để cho bạn một ví dụ, trong 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()
nơi Your_file_glob_pattern
nào đó mô tả việc đặt tên cho các tệp dữ liệu của bạn, có thể là nó *
hoặc *dat
. Thay vì glob
mô-đun, tất nhiên bạn có thể sử dụng os
. Bất cứ điều gì tạo ra một danh sách các tên tập tin, thực sự.