{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Séance 1 — Rappels & prise en main de NetworkX\n", "\n", "**Objectifs pédagogiques**\n", "- Réviser les définitions : nœuds, arêtes, graphes dirigés / non-dirigés / pondérés.\n", "- Prendre en main `networkx` pour créer un graphe et le visualiser.\n", "- Lire des mesures simples (degrés).\n", "\n", "**Consignes**\n", "- Exécutez cellule par cellule.\n", "- Commentez en 2-3 phrases ce que vous observez." ] }, { "cell_type": "code", "metadata": {}, "execution_count": null, "outputs": [], "source": [ "# Installation (si nécessaire) — peut être ignorée si networkx est déjà présent\n", "# %pip install networkx matplotlib\n", "\n", "import networkx as nx\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1) Créer un premier graphe non dirigé" ] }, { "cell_type": "code", "metadata": {}, "execution_count": null, "outputs": [], "source": [ "# TODO: Compléter la liste d'arêtes pour former votre mini-réseau social\n", "G = nx.Graph()\n", "G.add_edges_from([\n", " (\"Alice\", \"Bob\"),\n", " (\"Bob\", \"Claire\"),\n", " (\"Alice\", \"David\"),\n", " # (\"Claire\", \"David\"), # décommentez pour ajouter un lien\n", "])\n", "\n", "print(\"Nœuds :\", list(G.nodes()))\n", "print(\"Arêtes:\", list(G.edges()))\n", "print(\"Degrés:\", dict(G.degree()))\n", "\n", "plt.figure()\n", "nx.draw(G, with_labels=True)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) Questions\n", "1. Quel nœud a le plus grand degré ?\n", "2. Que se passe-t-il si vous ajoutez l'arête ('Claire','David') ?\n", "3. Donnez une interprétation sociologique rapide (qui est au centre ?)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 4 }