Σελίδα 1 από 1

Οδηγός gnuplot

ΔημοσίευσηΔημοσιεύτηκε: 22 Μάιος 2008, 18:50
από Dimitris
Οδηγός χρήσης του gnuplot

Το gnuplot είναι ένα πρόγραμμα για τη σχεδίαση δεδομένων και συναρτήσεων από τη γραμμή εντολών. H εγκατάσταση του προγράμματος gnuplot γίνεται με την εκτέλεση της εντολής:

Κώδικας: Επιλογή όλων
sudo apt-get install gnuplot


όπως πάντα άλλωστε. Το gnuplot ενδείκνυται για να συμπεριληφθεί ως εντολές σχεδίασης σε άλλο πρόγραμμα που διαβάζει ή παράγει τα δεδομένα. Τονίζεται ότι χρησιμοποιείται από το octave (υψηλού επιπέδου γλώσσα για αριθμητικούς υπολογισμούς) και υπάρχει και επέκταση της γλώσσας προγραμματισμού python για gnuplot.

Πληκτρολογώντας gnuplot στη γραμμή εντολών του κελύφους εισέρχεστε στη γραμμή εντολών του gnuplot, ενώ πληκτρολογώντας exit ή quit επιστρέφετε στη γραμμή εντολών του κελύφους.

H εντολή plot

Είναι η βασικότερη ίσως εντολή στο gnuplot, η οποία σχεδιάζει μεγάλη ποικιλία διαγραμμάτων στο επιπέδο (2d). Μπορεί να σχεδιάσει απλές γραμμές, σημεία (dots ή points), συνδυασμό των γραμμών και των σημείων, ιστογράμματα, ράβδους με ένδειξη λάθους, διανύσματα, ράβδους για οικονομικές εφαρμογές κ.α. Τα δεδομένα μπορεί να δημιουργούνται είτε μέσα απο το gnuplot με τη χρήση ενσωματωμένων συναρτήσεων ή που θα διαβάζονται από αρχεία. Οι επιλογές που δέχεται η εντολή plot είναι πάρα πολλές και οι συνδυασμοί τους ακόμη περισσότεροι, γι'αυτό στον οδηγό αυτό θα περιγραφούν μόνο μερικές από τις βασικές.

Συναρτήσεις

Οποιαδήποτε μαθηματική έκφραση που γίνεται αποδεκτή απο C, FORTRAN, Pascal μπορεί να σχεδιαστεί και με το gnuplot. Η προτεραιότητα των τελεστών καθορίζεται από τις προδιαγραφές της γλώσσας C.

Αν πληκτρολογήσουμε

Κώδικας: Επιλογή όλων
plot x


θα σχεδιάσει μια ευθεία γραμμή που θα ξεκινάει από το σημείο (-10,-10) και θα καταλήγει στο σημείο (10,10) προεπιλεγμένα από το ίδιο το gnuplot. O τύπος της συνάρτησης φάινεται στην επάνω δεξιά γωνία του διαγράμματος. Με την ιδια λογική μπορούμε να σχεδιάσουμε γραφικές παραστάσεις πιο πολύπλοκων συναρτησεων όπως φαίνεται στα παρακάτω παραδείγματα:

Κώδικας: Επιλογή όλων
plot  x**2, x**3-5*x**2
plot sin(x), cos(2*x)
plot 1/tan(x), 1/tan(x+5), 1/tan(x/10)


Όπως φαίνεται κάθε γράφημα τυπώνεται με διαφορετικό χρώμα για να ξεχωρίζεται από τα προηγούμενα. Είναι δυνατό να οριστούν συναρτήσεις από το χρήστη οι οποίες θα χρησιμοποιηθούν αργότερα.

Κώδικας: Επιλογή όλων
myfun(x) = sin(x) + x
plot myfun(x)


Για να αλλάξει το εύρος που θα σχεδιαστεί η καμπύλη, στο παράδειγμα από 0 μέχρι 5, μπορούμε να πληκτρολογήσουμε

Κώδικας: Επιλογή όλων
plot [0:5] 1/tan(x)


Αρχεία δεδομένων

Το gnuplot είναι δυνατό να σχεδιάσει και διαγράμματα τα οποία προέρχονται από ένα αρχείο δεδομένων. Υπάρχει βέβαια περιορισμός στη μορφή του αρχείου. Τα δεδομένα πρέπει να είναι διατεταγμένα σε στήλες, όπου κάθε στήλη θα αντιπροσωπεύει τις τιμές ενός άξονα. Ας υποθέσουμε ότι στο αρχείο mydata είναι αποθηκευμένα τα παρακάτω δεδομένα:

0 1.2
1 2.5
2 3.7
3 4.8
4 5.9

Για να σχεδιάσουμε τα δεδομένα αυτά στο gnuplot, θα γράφαμε

Κώδικας: Επιλογή όλων
plot "mydata"


Τα αρχεία δεδομένων μπορεί να περιλαμβάνουν περισσότερες από μία στήλες, οι οποίες μπορούν να σχεδιαστούν με την επιλογή using ή u.

Κώδικας: Επιλογή όλων
plot "mydata" using 1:2, u 1:3


στην πρώτη περίπτωση θεωρεί ως δεδομενα την πρώτη και δεύτερη στήλη για τους x- και y- άξονες αντίστοιχα, ενώ στη δεύτερη περίπτωση την πρώτη και τρίτη στήλη του αρχείου.

Μορφοποίηση διαγράμματος

Ένας γενικός τίτλος πάνω από το διάγραμμα ορίζεται ως

Κώδικας: Επιλογή όλων
set title "Hallo world"


σε αντίθεση με τη λεζάντα που δίνεται από

Κώδικας: Επιλογή όλων
plot x title "f(x) = x", x**2 title "f(x) = x**2"


Oι ετικέτες των αξόνων ορίζονται με τις επιλογές

Κώδικας: Επιλογή όλων
set xlabel "x"
set ylabel "f(x)"


και το διάγραμμα τότε μπορεί να ξανασχεδιαστεί με

Κώδικας: Επιλογή όλων
replot


Tα όρια σχεδιάσης μπορούν να οριστούν και εκτός της εντολής plot χρησιμοποιώντας τη

Κώδικας: Επιλογή όλων
set xrange [1.5:9.5]


για τα όρια στον άξονα των x, και

Κώδικας: Επιλογή όλων
set yrange [-10:-9]


για τα όρια στον άξονα των y.

Aποθήκευση σε αρχεία

H εντολή

Κώδικας: Επιλογή όλων
set terminal


τυπώνει στην οθονή όλα τα δυνατά τερματικά που μπορούν να χρησιμοποιηθούν. Αυτά μπορεί να είναι από postscript (ps, eps), scalable vector graphics (svg), αρχεία dxf, jpeg και άλλα πολλά. Αφού οριστεί το επιθυμητό τερματικό, ας πούμε svg:

Κώδικας: Επιλογή όλων
set terminal svg


το αρχείο που θα αποθηκευτεί το γράφημα ορίζεται

Κώδικας: Επιλογή όλων
set output “myfile.svg”


το οποίο αρχείο μπορεί να προβληθεί σε οποιονδήποτε φυλλομετρητή ή και να επεξεργαστεί από το πρόγραμμα inkscape.

Αυτοματοποίηση εντολών

Όλες οι εντολές που θα χρησιμοποιηθούν μπορούν να αποθηκευτούν σε ένα αρχείο για μελλοντική χρήση και να καλούνται από το gnuplot με την εντολή load. Για παράδειγμα το αρχείο myfile μπορεί να περιλαμβάνει τις εξής εντολές:

Κώδικας: Επιλογή όλων
set title "Hallo world"
set xlabel "Time"
set ylabel "Money"
plot x title "Time is money"


και να καλεσθεί μέσα από το gnuplot ως:

Κώδικας: Επιλογή όλων
load "myfile"


όπου θα εκτελεσθούν οι παραπάνω εντολές.

Eπιπλέον, μπορεί να εκτελεσθεί ένα αρχείο εντολών gnuplot καλώντας το gnuplot με το αρχείο εντολών, επιστρέφοντας τον έλεγχο της γραμμής εντολών στο χρήστη. Δηλαδή αν υποθέσουμε ότι στο αρχείο myfile υπάρχουν οι εντολές

Κώδικας: Επιλογή όλων
set terminal svg
set output "hallo.svg"
plot x


τότε η εντολή

Κώδικας: Επιλογή όλων
gnuplot myfile


θα εκτελέσει τις παραπάνω εντολές επίστρεφοντας στη γραμμή εντολών και δημιουργώντας το αρχείο hallo.svg.

Επίλογος

Οι δυνατότητες φυσικά του gnuplot δε περιορίζονται σε αυτά τα οποία περιγράφτηκαν εδώ. Για περισσότερες πληροφορίες μπορεί κανείς να ψάξει στην ιστοσελίδα του gnuplot, ή μέσα από το πρόγραμμα πληκτρολογώντας

Κώδικας: Επιλογή όλων
help {<θέμα>}


Βιβλιογραφία

http://www.gnuplot.info/docs/gnuplot.html


Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα

Re: Οδηγός gnuplot

ΔημοσίευσηΔημοσιεύτηκε: 30 Οκτ 2009, 15:14
από pmav99
:bow: :clap: :clap:
Πάρα πολύ καλός ευχαριστούμε!!!

Re: Οδηγός gnuplot

ΔημοσίευσηΔημοσιεύτηκε: 30 Οκτ 2009, 15:18
από c7p
Μπράβο πολύ καλό :thumbup:
Spoiler: show
Υπάρχει και το πολύ καλό Kmplot σε γραφικό περιβάλλον