अगर मैं सही तरीके से समझूं, तो यही आप चाहते हैं:
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
यह मानता है कि आपकी फ़ाइलें सभी वर्तमान निर्देशिका में हैं। ऊपर एक बैश स्क्रिप्ट है जो आपके रेखांकन को उत्पन्न करेगा। व्यक्तिगत रूप से, मैं आमतौर पर एक gnuplot कमांड फ़ाइल (इसे कॉल करें, कहते हैं gnuplot_in
) लिखता हूं, प्रत्येक फ़ाइल के लिए उपरोक्त आदेशों के साथ, किसी न किसी रूप की स्क्रिप्ट का उपयोग करके gnuplot < gnuplot_in
।
अजगर में आपको एक उदाहरण देने के लिए:
#!/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()
जहां Your_file_glob_pattern
कुछ ऐसा है जो आपके डेटाफ़ाइल्स के नामकरण का वर्णन करता है, वह हो *
या *dat
। glob
मॉड्यूल के बजाय , आप os
निश्चित रूप से उपयोग कर सकते हैं । जो भी फ़ाइल नामों की एक सूची बनाता है, वास्तव में।