Table des matières:
Vidéo: SEABORN PYTHON TUTORIEL PAIRPLOT etc : Les PLUS BEAUX GRAPHIQUES en 1 Ligne de Code ! (19/30) 2024
Les graphiques sont utiles pour les scientifiques de données. Un graphique est une représentation de données montrant les connexions entre des points de données utilisant des lignes dans Pythopn. Le but est de montrer que certains points de données se rapportent à d'autres points de données, mais pas à tous les points de données qui apparaissent sur le graphique.
Pensez à une carte d'un système de métro. Chacune des stations se connecte à d'autres stations, mais aucune station unique ne se connecte à toutes les stations du système de métro. Les graphiques sont un sujet de science des données populaire en raison de leur utilisation dans l'analyse des médias sociaux. Lors de l'analyse des médias sociaux, vous dépeignez et analysez des réseaux de relations, tels que des amis ou des relations d'affaires, à partir de centres sociaux tels que Facebook, Google+, Twitter ou LinkedIn.
Les deux représentations courantes des graphes sont non orientées , où le graphique montre simplement des lignes entre les éléments de données, et dirigé , où des flèches sont ajoutées à la ligne cette donnée circule dans une direction particulière. Par exemple, considérons une représentation d'un système d'eau. Dans la plupart des cas, l'eau circulerait dans une seule direction, de sorte que vous pourriez utiliser un graphe orienté pour représenter non seulement les connexions entre les sources et les cibles pour l'eau mais aussi pour montrer la direction de l'eau en utilisant des flèches.
Développement de graphes non orientés
Un graphe non orienté montre simplement les connexions entre les nœuds. La sortie ne fournit pas de direction d'un nœud à l'autre. Par exemple, lors de l'établissement de la connectivité entre les pages Web, aucune direction n'est implicite. L'exemple suivant montre comment créer un graphique non orienté.
import networkx en tant que nx import matplotlib. pyplot comme plt G = nx. Graphique () H = nx. Graphique () G. add_node (1) G. add_nodes_from ([2, 3]) G. add_nodes_from (intervalle (4, 7)) H. add_node (7) G. add_nodes_from (H) G. add_edge (1, 2) G. add_edge (1, 1) G. add_edges_from ([(2, 3), (3, 6), (4, 6), (5, 6)]) H. add_edges_from ([(4, 7), (5, 7), (6, 7)]) G. add_edges_from (H. Edges ()) nx. draw_networkx (G) plt. show ()
Cet exemple construit le graphique en utilisant un certain nombre de techniques différentes. Il commence par importer le paquet Networkx. Pour créer un nouveau graphique non orienté, le code appelle le constructeur Graph (), qui peut prendre un certain nombre d'arguments d'entrée à utiliser comme attributs. Cependant, vous pouvez créer un graphique parfaitement utilisable sans utiliser d'attributs, ce que fait cet exemple.
Le moyen le plus simple d'ajouter un noeud est d'appeler add_node () avec un numéro de noeud. Vous pouvez également ajouter une liste, un dictionnaire ou une plage () de noeuds en utilisant add_nodes_from (). En fait, vous pouvez importer des nœuds d'autres graphiques si vous le souhaitez.
Même si les nœuds utilisés dans l'exemple reposent sur des nombres, vous n'avez pas besoin d'utiliser des nombres pour vos nœuds. Un noeud peut utiliser une seule lettre, une chaîne ou même une date. Les nœuds ont certaines restrictions. Par exemple, vous ne pouvez pas créer un noeud à l'aide d'une valeur booléenne.
Les nœuds n'ont aucune connectivité au départ. Vous devez définir des connexions (bords) entre eux. Pour ajouter un seul bord, vous appelez add_edge () avec les numéros des nœuds que vous souhaitez ajouter. Comme pour les noeuds, vous pouvez utiliser add_edges_from () pour créer plusieurs arêtes en utilisant une liste, un dictionnaire ou un autre graphe comme entrée. Voici la sortie de cet exemple (votre sortie peut différer légèrement mais devrait avoir les mêmes connexions).
Les graphes non orientés relient les nœuds entre eux pour former des motifs.Développement de graphes orientés
Vous utilisez des graphes orientés lorsque vous devez afficher une direction, par exemple d'un point de départ à un point final. Lorsque vous obtenez une carte qui vous montre comment passer d'un point spécifique à un autre, le nœud de départ et le nœud de fin sont marqués comme tels et les lignes entre ces nœuds (et tous les nœuds intermédiaires) indiquent la direction.
Vos graphiques ne doivent pas être ennuyeux. Vous pouvez les habiller de toutes sortes de façons afin que le spectateur puisse obtenir des informations supplémentaires de différentes manières. Par exemple, vous pouvez créer des étiquettes personnalisées, utiliser des couleurs spécifiques pour certains nœuds ou utiliser la couleur pour aider les utilisateurs à voir la signification de vos graphiques.
Vous pouvez également modifier le poids de la ligne de bordure et utiliser d'autres techniques pour marquer un chemin spécifique entre les nœuds comme le meilleur choix. L'exemple suivant montre beaucoup (mais pas la quasi-totalité) la façon dont vous pouvez habiller un graphe orienté et le rendre plus intéressant:
import networkx as nx import matplotlib. pyplot comme plt G = nx. DiGraph () G. add_node (1) G. add_nodes_from ([2, 3]) G. add_nodes_from (intervalle (4, 6)) G. add_path ([6, 7, 8]) G. add_edge (1, 2) G. add_edges_from ([(1, 4), (4, 5), (2, 3), (3, 6), (5, 6)]) couleurs = ['r', 'g', 'g', 'g', 'g', 'm', 'm', 'r'] labels = {1: 'Démarrer', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: 'Fin'} tailles = [800, 300, 300, 300, 300, 600, 300, 800] nx. draw_networkx (G, node_color = couleurs, node_shape = "D", with_labels = Vrai, labels = labels, taille_noeud = tailles) plt. show ()
L'exemple commence par créer un graphique directionnel en utilisant le constructeur DiGraph (). Vous devez noter que le package NetworkX prend également en charge les types de graphiques MultiGraph () et MultiDiGraph (). Consultez cette liste de tous les types de graphiques.
L'ajout de nœuds ressemble beaucoup à un graphique non orienté. Vous pouvez ajouter des nœuds uniques en utilisant add_node () et plusieurs nœuds en utilisant add_nodes_from (). L'appel add_path () vous permet de créer des nœuds et des arêtes en même temps. L'ordre des nœuds dans l'appel est important. Le flux d'un noeud à l'autre est de gauche à droite dans la liste fournie à l'appel.
L'ajout d'arêtes est similaire à l'utilisation d'un graphe non orienté. Vous pouvez utiliser add_edge () pour ajouter un seul bord ou add_edges_from () pour ajouter plusieurs bords en même temps. Cependant, l'ordre des numéros de nœuds est important.Le flux va du noeud gauche au noeud droit dans chaque paire.
Cet exemple ajoute des couleurs de nœuds spéciales, des étiquettes, une forme (une seule forme est utilisée) et des tailles à la sortie. Vous appelez toujours draw_networkx () pour effectuer la tâche. Cependant, l'ajout des paramètres affichés modifie l'apparence du graphique. Notez que vous devez définir with_labels sur True afin de voir les étiquettes fournies par le paramètre labels. Voici la sortie de cet exemple.
Utilisez des graphiques orientés pour montrer la direction entre les nœuds.