Saltar al contenido principal
LibreTexts Español

15.4: Visualización de redes con NetworkX

  • Page ID
    115866
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    NetworkX también proporciona funciones para visualizar redes. No son tan potentes como otro software más especializado 1, pero siguen siendo bastante útiles y útiles, especialmente para la visualización de redes pequeñas y medianas. Esas funciones de visualización dependen de las funciones definidas en matplotlib (pylab), por lo que necesitamos importarlo antes de visualizar las redes.

    La forma más sencilla es usar la función draw de NetworkX:

    Código 15.11.png

    El resultado se muestra en la Fig. 15.4.1. Los círculos rojos representan los nodos, y las líneas negras que los conectan representan los bordes. Por defecto, el diseño de los nodos y bordes se determina automáticamente por el algoritmo dirigido a la fuerza Fruchterman-Reingold [62] (llamado “disposición de resorte” en NetworkX), que realiza una simulación pseudo-física de los movimientos de los nodos, asumiendo que cada borde es un resorte con un fijo distancia de equilibrio. Este algoritmo heurístico tiende a acercar grupos de nodos bien conectados entre sí, haciendo que el resultado de la visualización sea más significativo y estéticamente más agradable.

    Higo 15.3.png
    Figura\(\PageIndex{1}\): Salida visual del Código 15.11. Se visualiza la gráfica del Club de Karate de Zachary. Es posible que su resultado no se vea así porque el algoritmo de diseño de resorte usa posiciones iniciales aleatorias por defecto.

    Hay varios otros algoritmos de diseño, como se muestra en el Código 15.12 y la Fig.15.5.1. Además, hay muchas opciones que puedes usar para personalizar los resultados de visualización (ver Código 15.13 y Fig. 15.4.3). Consulte la documentación en línea de NetworkX para obtener más información sobre lo que puede hacer.

    Código 15.12.png

    Código 15.12 pt2.png

    Código 15.13.png

    Código 15.13 pt2.png

    Fig 15.4 pt1.png

    Fig 15.4 pt2.png
    Figura\(\PageIndex{2}\): Salida visual de Código 15.12, que muestra ejemplos de diseños de red disponibles en NetworkX.

    Código 15.13 pt3.png

    Ejercicio\(\PageIndex{1}\)

    Visualice las siguientes gráficas. Buscarlos en la documentación en línea de NetworkX para aprender a generarlos.

    • Un “gráfico hipercubo” de cuatro dimensiones.

    • Un “gráfico de escalera” de longitud 5.

    • Un “gráfico de barra” hecho de dos gráficos completos de 20 nodos que están conectados por un solo borde.

    • Un “gráfico de rueda” compuesto por 100 nodos.

    Ejercicio\(\PageIndex{2}\)

    Visualiza la red social que creaste en el Ejercicio 15.3.2. Prueba varias opciones para personalizar el resultado a tu preferencia.

    1 Por ejemplo, Gephi (http://gephi.github.io/) puede manejar redes mucho más grandes, y tiene muchos más algoritmos de incrustación de nodos que NetworkX.


    This page titled 15.4: Visualización de redes con NetworkX is shared under a CC BY-NC-SA 3.0 license and was authored, remixed, and/or curated by Hiroki Sayama (OpenSUNY) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.