ó
 ,µ[c           @   sÃ  d  Z  d d l j Z d d l Z y  d d l Z d d l m Z WnQ e	 k
 r” y  d d l
 Z
 d d l m Z Wq• e	 k
 r e	 d ƒ ‚ q• Xn Xd „  Z e d k r¿e ƒ  Z d e j e ƒ e j e ƒ f GHe j e ƒ d f GHe j d	 d ƒ e e d d d d ƒZ e j e e d g  e D] Z e j e ^ q&d e d d d d ƒd e d „  e j ƒ  Dƒ ƒ Z d e d „  e j ƒ  Dƒ ƒ Z e j d e ƒ e j d e ƒ e j ƒ  n  d S(   s–   
===========
Lanl Routes
===========

Routes to LANL from 186 sites on the Internet.

This uses Graphviz for layout so you need PyGraphviz or pydot.

iÿÿÿÿN(   t   graphviz_layouts:   This example needs Graphviz and either PyGraphviz or pydotc    	      C   sý   y t  d d ƒ }  Wn t k
 r. d GH‚  n Xt j ƒ  } i  } d | d <x[ |  j ƒ  D]M } | j ƒ  \ } } } | j t | ƒ t | ƒ ƒ t | ƒ | t | ƒ <qX Wt	 t j
 | ƒ d t d t ƒd } i  | _ x | D] } | | | j | <qÞ W| S(   s9    Return the lanl internet view graph from lanl.edges
    s   lanl_routes.edgelistt   rs   lanl.edges not foundi    t   keyt   reverse(   t   opent   IOErrort   nxt   Grapht	   readlinest   splitt   add_edget   intt   floatt   sortedt   connected_component_subgraphst   lent   Truet   rtt(	   t   fht   Gt   timet   linet   headt   tailR   t   G0t   n(    (    s;   share/doc/networkx-2.2/examples/drawing/plot_lanl_routes.pyt
   lanl_graph#   s"    
%	t   __main__s    graph has %d nodes with %d edgess   connected componentst   figsizei   t   progt   twopit   rooti    t
   node_colort   with_labelst   alphag      à?t	   node_sizei   gR¸…ëQð?c         c   s   |  ] \ } } | Vq d  S(   N(    (   t   .0t   xxt   yy(    (    s;   share/doc/networkx-2.2/examples/drawing/plot_lanl_routes.pys	   <genexpr>P   s    c         c   s   |  ] \ } } | Vq d  S(   N(    (   R$   R%   R&   (    (    s;   share/doc/networkx-2.2/examples/drawing/plot_lanl_routes.pys	   <genexpr>Q   s    (   i   i   (   t   __doc__t   matplotlib.pyplott   pyplott   pltt   networkxR   t
   pygraphvizt   networkx.drawing.nx_agraphR    t   ImportErrort   pydott   networkx.drawing.nx_pydotR   t   __name__R   t   number_of_nodest   number_of_edgest   number_connected_componentst   figuret   post   drawt   vR   t   Falset   maxt   valuest   xmaxt   ymaxt   xlimt   ylimt   show(    (    (    s;   share/doc/networkx-2.2/examples/drawing/plot_lanl_routes.pyt   <module>   s:   		   