Πίνακας περιεχομένων:
- Ένα μη κατευθυνόμενο γράφημα δείχνει απλώς συνδέσεις μεταξύ κόμβων. Η έξοδος δεν παρέχει κατεύθυνση από το ένα κόμβο στο επόμενο. Για παράδειγμα, κατά την καθιέρωση σύνδεσης μεταξύ ιστοσελίδων, δεν υπονοείται καμία κατεύθυνση. Το παρακάτω παράδειγμα δείχνει πώς να δημιουργήσετε ένα μη κατευθυνόμενο γράφημα.
- Χρησιμοποιείτε κατευθυνόμενα γραφήματα όταν πρέπει να δείξετε μια κατεύθυνση, για παράδειγμα από ένα σημείο έναρξης έως ένα τελικό σημείο. Όταν λάβετε έναν χάρτη που σας δείχνει πώς να φτάσετε από ένα συγκεκριμένο σημείο σε άλλο, ο κόμβος εκκίνησης και ο κόμβος τερματισμού σημειώνονται ως τέτοιοι και οι γραμμές μεταξύ αυτών των κόμβων (και όλων των ενδιάμεσων κόμβων) δείχνουν κατεύθυνση.
Βίντεο: Data Analysis in R by Dustin Tran 2024
Τα γράμματα είναι χρήσιμα για τους επιστήμονες δεδομένων. Ένα γράφημα είναι μια απεικόνιση δεδομένων που δείχνει τις συνδέσεις μεταξύ σημείων δεδομένων που χρησιμοποιούν γραμμές στο Pythopn. Ο σκοπός είναι να δείξετε ότι ορισμένα σημεία δεδομένων σχετίζονται με άλλα σημεία δεδομένων, αλλά όχι με όλα τα σημεία δεδομένων που εμφανίζονται στο γράφημα.
Σκεφτείτε ένα χάρτη ενός συστήματος μετρό. Κάθε ένας από τους σταθμούς συνδέεται με άλλους σταθμούς, αλλά κανένας σταθμός δεν συνδέεται με όλους τους σταθμούς στο σύστημα του μετρό. Τα γράμματα είναι ένα δημοφιλές θέμα επιστημών δεδομένων λόγω της χρήσης τους στην ανάλυση κοινωνικών μέσων. Κατά την ανάλυση κοινωνικών μέσων, απεικονίζετε και αναλύετε δίκτυα σχέσεων, όπως φίλους ή επιχειρηματικές συνδέσεις, από κοινωνικούς κόμβους όπως το Facebook, το Google+, το Twitter ή το LinkedIn.
μη κατευθυνόμενες , όπου το γράφημα δείχνει απλά γραμμές μεταξύ στοιχείων δεδομένων και κατευθύνεται , όπου προστίθενται τα βέλη στο παράθυρο ότι τα δεδομένα ρέουν σε μια συγκεκριμένη κατεύθυνση. Για παράδειγμα, εξετάστε μια απεικόνιση ενός συστήματος νερού. Το νερό θα ρέει σε μία μόνο κατεύθυνση στις περισσότερες περιπτώσεις, έτσι μπορείτε να χρησιμοποιήσετε ένα κατευθυνόμενο γράφημα για να απεικονίσετε όχι μόνο τις συνδέσεις μεταξύ πηγών και στόχων για το νερό αλλά και να δείξετε την κατεύθυνση του νερού χρησιμοποιώντας βέλη.Ένα μη κατευθυνόμενο γράφημα δείχνει απλώς συνδέσεις μεταξύ κόμβων. Η έξοδος δεν παρέχει κατεύθυνση από το ένα κόμβο στο επόμενο. Για παράδειγμα, κατά την καθιέρωση σύνδεσης μεταξύ ιστοσελίδων, δεν υπονοείται καμία κατεύθυνση. Το παρακάτω παράδειγμα δείχνει πώς να δημιουργήσετε ένα μη κατευθυνόμενο γράφημα.
εισαγάγετε το networkx ως nx import matplotlib. pyplot ως plt G = nx. Γράφημα () H = nx. Γ. Add_node (7) G. add_nodes_from (H) G. add_edge (1, 2) Γ. Add_node (1) G. add_edges (1, 1) G. add_edges_from ([(2, 3), (3, 6), (4, 6), (5, 6) 5, 7), (6, 7)]) G. add_edges_from (H άκρες ()) nx. draw_networkx (G) plt. show ()
Αυτό το παράδειγμα δημιουργεί το γράφημα χρησιμοποιώντας διάφορες τεχνικές. Αρχίζει με την εισαγωγή του πακέτου Networkx. Για να δημιουργήσει ένα νέο μη κατευθυνόμενο γράφημα, ο κώδικας καλεί τον κατασκευαστή Graph (), ο οποίος μπορεί να πάρει μια σειρά από επιχειρήματα εισόδου για χρήση ως χαρακτηριστικά. Ωστόσο, μπορείτε να δημιουργήσετε ένα τέλεια χρησιμοποιήσιμο γράφημα χωρίς να χρησιμοποιήσετε χαρακτηριστικά, κάτι που κάνει αυτό το παράδειγμα.
Αν και οι κόμβοι που χρησιμοποιούνται στο παράδειγμα βασίζονται σε αριθμούς, δεν χρειάζεται να χρησιμοποιείτε αριθμούς για τους κόμβους σας. Ένας κόμβος μπορεί να χρησιμοποιήσει ένα μόνο γράμμα, μια συμβολοσειρά ή ακόμα και μια ημερομηνία. Οι κόμβοι έχουν ορισμένους περιορισμούς. Για παράδειγμα, δεν μπορείτε να δημιουργήσετε έναν κόμβο χρησιμοποιώντας μια τιμή Boolean.
Οι κόμβοι δεν έχουν συνδεσιμότητα από την αρχή. Πρέπει να ορίσετε συνδέσεις (άκρα) μεταξύ τους. Για να προσθέσετε ένα μόνο άκρο, καλείτε add_edge () με τους αριθμούς των κόμβων που θέλετε να προσθέσετε. Όπως και με τους κόμβους, μπορείτε να χρησιμοποιήσετε το add_edges_from () για να δημιουργήσετε περισσότερες από μία άκρη χρησιμοποιώντας μια λίστα, ένα λεξικό ή άλλο γράφημα ως είσοδο. Εδώ είναι η έξοδος από αυτό το παράδειγμα (η έξοδος μπορεί να διαφέρει ελαφρώς αλλά να έχει τις ίδιες συνδέσεις).
Τα μη κατευθυνόμενα γραφήματα συνδέουν τους κόμβους μαζί για να σχηματίσουν μοτίβα.
Ανάπτυξη κατευθυνόμενων γραφημάτωνΧρησιμοποιείτε κατευθυνόμενα γραφήματα όταν πρέπει να δείξετε μια κατεύθυνση, για παράδειγμα από ένα σημείο έναρξης έως ένα τελικό σημείο. Όταν λάβετε έναν χάρτη που σας δείχνει πώς να φτάσετε από ένα συγκεκριμένο σημείο σε άλλο, ο κόμβος εκκίνησης και ο κόμβος τερματισμού σημειώνονται ως τέτοιοι και οι γραμμές μεταξύ αυτών των κόμβων (και όλων των ενδιάμεσων κόμβων) δείχνουν κατεύθυνση.
Οι γραφικές παραστάσεις σας δεν χρειάζεται να είναι βαρετές. Μπορείτε να τα διανθίσετε με κάθε τρόπο έτσι ώστε ο θεατής να κερδίσει πρόσθετες πληροφορίες με διάφορους τρόπους. Για παράδειγμα, μπορείτε να δημιουργήσετε προσαρμοσμένες ετικέτες, να χρησιμοποιήσετε συγκεκριμένα χρώματα για ορισμένους κόμβους ή να βασιστείτε στο χρώμα για να βοηθήσετε τους ανθρώπους να δουν το νόημα πίσω από τα γραφήματα.
Μπορείτε επίσης να αλλάξετε το βάρος γραμμής άκρης και να χρησιμοποιήσετε άλλες τεχνικές για να επισημάνετε μια συγκεκριμένη διαδρομή μεταξύ κόμβων ως καλύτερη επιλογή. Το παρακάτω παράδειγμα δείχνει πολλά (αλλά όχι σχεδόν όλα) τους τρόπους με τους οποίους μπορείτε να διανθίσετε ένα κατευθυνόμενο γράφημα και να το κάνετε πιο ενδιαφέρον:
import networkx ως nx import matplotlib. pyplot ως plt G = nx. Γ. Add_path ([6, 7, 8]) G. add_edge (1, 2) Γ. Add_node (1) G. add_edges_from ([(1, 4), (4, 5), (2, 3), (3, 6), 5,6)] χρώματα = ['r', g ', «g», «g», «m», «m», «r»] ετικέτες = {1: 'Start', 2: '2', 3: '3', 4: '5', 6: '6', 7: '7', 8: 'Τέλος'} μεγέθη = [800, 300, 300, 300, 300, 600, 300, 800] nx. draw_networkx (G, node_color = χρώματα, node_shape = "D", with_labels = True, ετικέτες = ετικέτες, node_size = μεγέθη) plt. show ()
Το παράδειγμα αρχίζει δημιουργώντας ένα γράφημα κατεύθυνσης χρησιμοποιώντας τον κατασκευαστή DiGraph (). Σημειώστε ότι το πακέτο NetworkX υποστηρίζει επίσης τους τύπους γραφημάτων MultiGraph () και MultiDiGraph (). Ελέγξτε αυτήν την λίστα όλων των τύπων γραφημάτων.
Η προσθήκη κόμβων μοιάζει πολύ με την εργασία με ένα μη κατευθυνόμενο γράφημα. Μπορείτε να προσθέσετε μεμονωμένους κόμβους χρησιμοποιώντας add_node () και πολλαπλούς κόμβους χρησιμοποιώντας το add_nodes_from (). Η κλήση add_path () σας επιτρέπει να δημιουργείτε κόμβους και ακμές ταυτόχρονα. Η σειρά των κόμβων στην κλήση είναι σημαντική. Η ροή από έναν κόμβο σε άλλο είναι από αριστερά προς τα δεξιά στη λίστα που παρέχεται στην κλήση.
Η προσθήκη των άκρων είναι πολύ παρόμοια με την εργασία με ένα μη κατευθυνόμενο γράφημα. Μπορείτε να χρησιμοποιήσετε το add_edge () για να προσθέσετε ένα μόνο άκρο ή add_edges_from () για να προσθέσετε πολλαπλές άκρες ταυτόχρονα. Ωστόσο, η σειρά των αριθμών κόμβων είναι σημαντική.Η ροή πηγαίνει από τον αριστερό κόμβο στον δεξιό κόμβο σε κάθε ζεύγος.
Αυτό το παράδειγμα προσθέτει ειδικά χρώματα κόμβου, ετικέτες, σχήμα (χρησιμοποιείται μόνο ένα σχήμα) και μεγέθη στην έξοδο. Εξακολουθείτε να καλέσετε draw_networkx () για να εκτελέσετε την εργασία. Ωστόσο, η προσθήκη των παραμέτρων που εμφανίζονται αλλάζει την εμφάνιση του γραφήματος. Σημειώστε ότι πρέπει να ορίσετε με_ετικείμενα στο True για να δείτε τις ετικέτες που παρέχονται από την παράμετρο ετικετών. Εδώ είναι η έξοδος από αυτό το παράδειγμα.
Χρησιμοποιήστε κατευθυνόμενα γραφήματα για να δείξετε κατεύθυνση μεταξύ κόμβων.