<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>AGraph Class — PyGraphviz 1.5 documentation</title> <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/language_data.js"></script> <link rel="search" type="application/opensearchdescription+xml" title="Search within PyGraphviz 1.5 documentation" href="../_static/opensearch.xml"/> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="FAQ" href="faq.html" /> <link rel="prev" title="Reference" href="index.html" /> <link rel="stylesheet" href="../_static/custom.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> </head><body> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="agraph-class"> <span id="agraph"></span><h1>AGraph Class<a class="headerlink" href="#agraph-class" title="Permalink to this headline">¶</a></h1> <dl class="class"> <dt id="pygraphviz.AGraph"> <em class="property">class </em><code class="descname">AGraph</code><span class="sig-paren">(</span><em>thing=None</em>, <em>filename=None</em>, <em>data=None</em>, <em>string=None</em>, <em>handle=None</em>, <em>name=''</em>, <em>strict=True</em>, <em>directed=False</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph" title="Permalink to this definition">¶</a></dt> <dd><p>Class for Graphviz agraph type.</p> <p>Example use</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">pygraphviz</span> <span class="k">import</span> <span class="o">*</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">directed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="s2">"file.dot"</span><span class="p">)</span> <span class="c1"># doctest: +SKIP</span> </pre></div> </div> <p>Graphviz graph keyword parameters are processed so you may add them like</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">landscape</span><span class="o">=</span><span class="s1">'true'</span><span class="p">,</span><span class="n">ranksep</span><span class="o">=</span><span class="s1">'0.1'</span><span class="p">)</span> </pre></div> </div> <p>or alternatively</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">graph_attr</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">landscape</span><span class="o">=</span><span class="s1">'true'</span><span class="p">,</span><span class="n">ranksep</span><span class="o">=</span><span class="s1">'0.1'</span><span class="p">)</span> </pre></div> </div> <p>and</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">node_attr</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">color</span><span class="o">=</span><span class="s1">'red'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">edge_attr</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="s1">'2.0'</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="s1">'blue'</span><span class="p">)</span> </pre></div> </div> <p>See <a class="reference external" href="http://www.graphviz.org/doc/info/attrs.html">http://www.graphviz.org/doc/info/attrs.html</a> for a list of attributes.</p> <p>Keyword parameters:</p> <p>thing is a generic input type (filename, string, handle to pointer, dictionary of dictionaries). An attempt is made to automaticaly detect the type so you may write for example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">d</span><span class="o">=</span><span class="p">{</span><span class="s1">'1'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'2'</span><span class="p">:</span> <span class="kc">None</span><span class="p">},</span> <span class="s1">'2'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'1'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'3'</span><span class="p">:</span> <span class="kc">None</span><span class="p">},</span> <span class="s1">'3'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'2'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}}</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">s</span><span class="o">=</span><span class="n">A</span><span class="o">.</span><span class="n">to_string</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">B</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">h</span><span class="o">=</span><span class="n">B</span><span class="o">.</span><span class="n">handle</span> <span class="gp">>>> </span><span class="n">C</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">h</span><span class="p">)</span> </pre></div> </div> <p>Parameters:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">name</span><span class="p">:</span> <span class="n">Name</span> <span class="k">for</span> <span class="n">the</span> <span class="n">graph</span> <span class="n">strict</span><span class="p">:</span> <span class="kc">True</span><span class="o">|</span><span class="kc">False</span> <span class="p">(</span><span class="kc">True</span> <span class="k">for</span> <span class="n">simple</span> <span class="n">graphs</span><span class="p">)</span> <span class="n">directed</span><span class="p">:</span> <span class="kc">True</span><span class="o">|</span><span class="kc">False</span> <span class="n">data</span><span class="p">:</span> <span class="n">Dictionary</span> <span class="n">of</span> <span class="n">dictionaries</span> <span class="ow">or</span> <span class="n">dictionary</span> <span class="n">of</span> <span class="n">lists</span> <span class="n">representing</span> <span class="n">nodes</span> <span class="ow">or</span> <span class="n">edges</span> <span class="n">to</span> <span class="n">load</span> <span class="n">into</span> <span class="n">initial</span> <span class="n">graph</span> <span class="n">string</span><span class="p">:</span> <span class="n">String</span> <span class="n">containing</span> <span class="n">a</span> <span class="n">dot</span> <span class="nb">format</span> <span class="n">graph</span> <span class="n">handle</span><span class="p">:</span> <span class="n">Swig</span> <span class="n">pointer</span> <span class="n">to</span> <span class="n">an</span> <span class="n">agraph_t</span> <span class="n">data</span> <span class="n">structure</span> </pre></div> </div> <dl class="method"> <dt id="pygraphviz.AGraph.acyclic"> <code class="descname">acyclic</code><span class="sig-paren">(</span><em>args=''</em>, <em>copy=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.acyclic" title="Permalink to this definition">¶</a></dt> <dd><p>Reverse sufficient edges in digraph to make graph acyclic. Modifies existing graph.</p> <p>To create a new graph use</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">B</span><span class="o">=</span><span class="n">A</span><span class="o">.</span><span class="n">acyclic</span><span class="p">(</span><span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="c1"># doctest: +SKIP</span> </pre></div> </div> <p>See the graphviz “acyclic” program for details of the algorithm.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_cycle"> <code class="descname">add_cycle</code><span class="sig-paren">(</span><em>nlist</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_cycle" title="Permalink to this definition">¶</a></dt> <dd><p>Add the cycle of nodes given in nlist.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_edge"> <code class="descname">add_edge</code><span class="sig-paren">(</span><em>u</em>, <em>v=None</em>, <em>key=None</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_edge" title="Permalink to this definition">¶</a></dt> <dd><p>Add a single edge between nodes u and v.</p> <p>If the nodes u and v are not in the graph they will added.</p> <p>If u and v are not strings, conversion to a string will be attempted. String conversion will work if u and v have valid string representation (try str(u) if you are unsure).</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">edges</span><span class="p">()</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[(u'a', u'b')]</span> </pre></div> </div> <p>The optional key argument allows assignment of a key to the edge. This is especially useful to distinguish between parallel edges in multi-edge graphs (strict=False).</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">strict</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="s1">'first'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="s1">'second'</span><span class="p">)</span> <span class="gp">>>> </span><span class="nb">sorted</span><span class="p">(</span><span class="n">G</span><span class="o">.</span><span class="n">edges</span><span class="p">(</span><span class="n">keys</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[(u'a', u'b', u'first'), (u'a', u'b', u'second')]</span> </pre></div> </div> <p>Attributes can be added when edges are created or updated after creation</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="s1">'green'</span><span class="p">)</span> </pre></div> </div> <p>Attributes must be valid strings.</p> <p>See <a class="reference external" href="http://www.graphviz.org/doc/info/attrs.html">http://www.graphviz.org/doc/info/attrs.html</a> for a list of attributes.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_edges_from"> <code class="descname">add_edges_from</code><span class="sig-paren">(</span><em>ebunch</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_edges_from" title="Permalink to this definition">¶</a></dt> <dd><p>Add nodes to graph from a container ebunch.</p> <p>ebunch is a container of edges such as a list or dictionary.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">elist</span><span class="o">=</span><span class="p">[(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">),(</span><span class="s1">'b'</span><span class="p">,</span><span class="s1">'c'</span><span class="p">)]</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">(</span><span class="n">elist</span><span class="p">)</span> </pre></div> </div> <p>Attributes can be added when edges are created or updated after creation</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edges_from</span><span class="p">(</span><span class="n">elist</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'green'</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_node"> <code class="descname">add_node</code><span class="sig-paren">(</span><em>n</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_node" title="Permalink to this definition">¶</a></dt> <dd><p>Add a single node n.</p> <p>If n is not a string, conversion to a string will be attempted. String conversion will work if n has valid string representation (try str(n) if you are unsure).</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">nodes</span><span class="p">()</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[u'a']</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="c1"># will be converted to a string</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">nodes</span><span class="p">()</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[u'a', u'1']</span> </pre></div> </div> <p>Attributes can be added to nodes on creation or updated after creation (attribute values must be strings)</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">color</span><span class="o">=</span><span class="s1">'red'</span><span class="p">)</span> </pre></div> </div> <p>See <a class="reference external" href="http://www.graphviz.org/doc/info/attrs.html">http://www.graphviz.org/doc/info/attrs.html</a> for a list of attributes.</p> <p>Anonymous Graphviz nodes are currently not implemented.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_nodes_from"> <code class="descname">add_nodes_from</code><span class="sig-paren">(</span><em>nbunch</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_nodes_from" title="Permalink to this definition">¶</a></dt> <dd><p>Add nodes from a container nbunch.</p> <p>nbunch can be any iterable container such as a list or dictionary</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">nlist</span><span class="o">=</span><span class="p">[</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'spam'</span><span class="p">]</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">)</span> <span class="gp">>>> </span><span class="nb">sorted</span><span class="p">(</span><span class="n">G</span><span class="o">.</span><span class="n">nodes</span><span class="p">())</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[u'1', u'a', u'b', u'spam']</span> </pre></div> </div> <p>Attributes can be added to nodes on creation or updated after creation</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">'red'</span><span class="p">)</span> <span class="c1"># set all nodes in nlist red</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_path"> <code class="descname">add_path</code><span class="sig-paren">(</span><em>nlist</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_path" title="Permalink to this definition">¶</a></dt> <dd><p>Add the path of nodes given in nlist.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.add_subgraph"> <code class="descname">add_subgraph</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>name=None</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.add_subgraph" title="Permalink to this definition">¶</a></dt> <dd><p>Return subgraph induced by nodes in nbunch.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.clear"> <code class="descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.clear" title="Permalink to this definition">¶</a></dt> <dd><p>Remove all nodes, edges, and attributes from the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.close"> <code class="descname">close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.close" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.copy"> <code class="descname">copy</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.copy" title="Permalink to this definition">¶</a></dt> <dd><p>Return a copy of the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.degree"> <code class="descname">degree</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>with_labels=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.degree" title="Permalink to this definition">¶</a></dt> <dd><p>Return the degree of nodes given in nbunch container.</p> <p>Using optional with_labels=True returns a dictionary keyed by node with value set to the degree.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.degree_iter"> <code class="descname">degree_iter</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>indeg=True</em>, <em>outdeg=True</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.degree_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.delete_edge"> <code class="descname">delete_edge</code><span class="sig-paren">(</span><em>u</em>, <em>v=None</em>, <em>key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.delete_edge" title="Permalink to this definition">¶</a></dt> <dd><p>Remove edge between nodes u and v from the graph.</p> <p>With optional key argument will only remove an edge matching (u,v,key).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.delete_edges_from"> <code class="descname">delete_edges_from</code><span class="sig-paren">(</span><em>ebunch</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.delete_edges_from" title="Permalink to this definition">¶</a></dt> <dd><p>Remove edges from ebunch (a container of edges).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.delete_node"> <code class="descname">delete_node</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.delete_node" title="Permalink to this definition">¶</a></dt> <dd><p>Remove the single node n.</p> <p>Attempting to remove a node that isn’t in the graph will produce an error.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">remove_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.delete_nodes_from"> <code class="descname">delete_nodes_from</code><span class="sig-paren">(</span><em>nbunch</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.delete_nodes_from" title="Permalink to this definition">¶</a></dt> <dd><p>Remove nodes from a container nbunch.</p> <p>nbunch can be any iterable container such as a list or dictionary</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">nlist</span><span class="o">=</span><span class="p">[</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'spam'</span><span class="p">]</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">remove_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.delete_subgraph"> <code class="descname">delete_subgraph</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.delete_subgraph" title="Permalink to this definition">¶</a></dt> <dd><p>Remove subgraph with given name.</p> </dd></dl> <dl class="attribute"> <dt id="pygraphviz.AGraph.directed"> <code class="descname">directed</code><a class="headerlink" href="#pygraphviz.AGraph.directed" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if graph is directed or False if not.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.draw"> <code class="descname">draw</code><span class="sig-paren">(</span><em>path=None</em>, <em>format=None</em>, <em>prog=None</em>, <em>args=''</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.draw" title="Permalink to this definition">¶</a></dt> <dd><p>Output graph to path in specified format.</p> <p>An attempt will be made to guess the output format based on the file extension of <cite>path</cite>. If that fails, then the <cite>format</cite> parameter will be used.</p> <p>Note, if <cite>path</cite> is a file object returned by a call to os.fdopen(), then the method for discovering the format will not work. In such cases, one should explicitly set the <cite>format</cite> parameter; otherwise, it will default to ‘dot’.</p> <p>Formats (not all may be available on every system depending on how Graphviz was built)</p> <blockquote> <div>‘canon’, ‘cmap’, ‘cmapx’, ‘cmapx_np’, ‘dia’, ‘dot’, ‘fig’, ‘gd’, ‘gd2’, ‘gif’, ‘hpgl’, ‘imap’, ‘imap_np’, ‘ismap’, ‘jpe’, ‘jpeg’, ‘jpg’, ‘mif’, ‘mp’, ‘pcl’, ‘pdf’, ‘pic’, ‘plain’, ‘plain-ext’, ‘png’, ‘ps’, ‘ps2’, ‘svg’, ‘svgz’, ‘vml’, ‘vmlz’, ‘vrml’, ‘vtx’, ‘wbmp’, ‘xdot’, ‘xlib’</div></blockquote> <p>If prog is not specified and the graph has positions (see layout()) then no additional graph positioning will be performed.</p> <p>Optional prog=[‘neato’|’dot’|’twopi’|’circo’|’fdp’|’nop’] will use specified graphviz layout method.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span> <span class="o">=</span> <span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">layout</span><span class="p">()</span> </pre></div> </div> <p># use current node positions, output ps in ‘file.ps’ >>> G.draw(‘file.ps’)</p> <p># use dot to position, output png in ‘file’ >>> G.draw(‘file’, format=’png’,prog=’dot’)</p> <p># use keyword ‘args’ to pass additional arguments to graphviz >>> G.draw(‘test.ps’,prog=’twopi’,args=’-Gepsilon=1’)</p> <p>The layout might take a long time on large graphs.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.edges"> <code class="descname">edges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.edges" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of edges in the graph.</p> <p>If the optional nbunch (container of nodes) only edges adjacent to nodes in nbunch will be returned.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'c'</span><span class="p">,</span><span class="s1">'d'</span><span class="p">)</span> <span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">G</span><span class="o">.</span><span class="n">edges</span><span class="p">()))</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[(u'a', u'b'), (u'c', u'd')]</span> <span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">G</span><span class="o">.</span><span class="n">edges</span><span class="p">(</span><span class="s1">'a'</span><span class="p">))</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">[(u'a', u'b')]</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.edges_iter"> <code class="descname">edges_iter</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.edges_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over edges in the graph.</p> <p>If the optional nbunch (container of nodes) only edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.from_string"> <code class="descname">from_string</code><span class="sig-paren">(</span><em>string</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.from_string" title="Permalink to this definition">¶</a></dt> <dd><p>Load a graph from a string in dot format.</p> <p>Overwrites any existing graph.</p> <p>To make a new graph from a string use</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">s</span><span class="o">=</span><span class="s1">'digraph {1 -> 2}'</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">t</span><span class="o">=</span><span class="n">A</span><span class="o">.</span><span class="n">from_string</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">string</span><span class="o">=</span><span class="n">s</span><span class="p">)</span> <span class="c1"># specify s is a string</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="c1"># s assumed to be a string during initialization</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.get_edge"> <code class="descname">get_edge</code><span class="sig-paren">(</span><em>u</em>, <em>v</em>, <em>key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.get_edge" title="Permalink to this definition">¶</a></dt> <dd><p>Return an edge object (Edge) corresponding to edge (u,v).</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">edge</span><span class="o">=</span><span class="n">G</span><span class="o">.</span><span class="n">get_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">edge</span><span class="p">)</span> <span class="c1"># doctest: +IGNORE_UNICODE</span> <span class="go">(u'a', u'b')</span> </pre></div> </div> <p>With optional key argument will only get edge matching (u,v,key).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.get_name"> <code class="descname">get_name</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.get_name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.get_node"> <code class="descname">get_node</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.get_node" title="Permalink to this definition">¶</a></dt> <dd><p>Return a node object (Node) corresponding to node n.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">node</span><span class="o">=</span><span class="n">G</span><span class="o">.</span><span class="n">get_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="go">a</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.get_subgraph"> <code class="descname">get_subgraph</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.get_subgraph" title="Permalink to this definition">¶</a></dt> <dd><p>Return existing subgraph with specified name or None if it doesn’t exist.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.has_edge"> <code class="descname">has_edge</code><span class="sig-paren">(</span><em>u</em>, <em>v=None</em>, <em>key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.has_edge" title="Permalink to this definition">¶</a></dt> <dd><p>Return True an edge u-v is in the graph or False if not.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">has_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="go">True</span> </pre></div> </div> <p>Optional key argument will restrict match to edges (u,v,key).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.has_neighbor"> <code class="descname">has_neighbor</code><span class="sig-paren">(</span><em>u</em>, <em>v</em>, <em>key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.has_neighbor" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if u has an edge to v or False if not.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_edge</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">has_neighbor</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">)</span> <span class="go">True</span> </pre></div> </div> <p>Optional key argument will only find edges (u,v,key).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.has_node"> <code class="descname">has_node</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.has_node" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if n is in the graph or False if not.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">has_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="go">True</span> <span class="gp">>>> </span><span class="s1">'a'</span> <span class="ow">in</span> <span class="n">G</span> <span class="c1"># same as G.has_node('a')</span> <span class="go">True</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.in_degree"> <code class="descname">in_degree</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>with_labels=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.in_degree" title="Permalink to this definition">¶</a></dt> <dd><p>Return the in-degree of nodes given in nbunch container.</p> <p>Using optional with_labels=True returns a dictionary keyed by node with value set to the degree.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.in_degree_iter"> <code class="descname">in_degree_iter</code><span class="sig-paren">(</span><em>nbunch=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.in_degree_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the in-degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.in_edges"> <code class="descname">in_edges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.in_edges" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of in edges in the graph. If the optional nbunch (container of nodes) only in edges adjacent to nodes in nbunch will be returned.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.in_edges_iter"> <code class="descname">in_edges_iter</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.in_edges_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over out edges in the graph.</p> <p>If the optional nbunch (container of nodes) only out edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use in_edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.in_neighbors"> <code class="descname">in_neighbors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.in_neighbors" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of predecessor nodes of n.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.is_directed"> <code class="descname">is_directed</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.is_directed" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if graph is directed or False if not.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.is_strict"> <code class="descname">is_strict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.is_strict" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if graph is strict or False if not.</p> <p>Strict graphs do not allow parallel edges or self loops.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.is_undirected"> <code class="descname">is_undirected</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.is_undirected" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if graph is undirected or False if not.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iterdegree"> <code class="descname">iterdegree</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>indeg=True</em>, <em>outdeg=True</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iterdegree" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iteredges"> <code class="descname">iteredges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iteredges" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over edges in the graph.</p> <p>If the optional nbunch (container of nodes) only edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iterindegree"> <code class="descname">iterindegree</code><span class="sig-paren">(</span><em>nbunch=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iterindegree" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the in-degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iterinedges"> <code class="descname">iterinedges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iterinedges" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over out edges in the graph.</p> <p>If the optional nbunch (container of nodes) only out edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use in_edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iterneighbors"> <code class="descname">iterneighbors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iterneighbors" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over the nodes attached to n.</p> <p>Note: modifying the graph structure while iterating over node neighbors may produce unpredictable results. Use neighbors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iternodes"> <code class="descname">iternodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iternodes" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over all the nodes in the graph.</p> <p>Note: modifying the graph structure while iterating over the nodes may produce unpredictable results. Use nodes() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iteroutdegree"> <code class="descname">iteroutdegree</code><span class="sig-paren">(</span><em>nbunch=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iteroutdegree" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the out-degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iteroutedges"> <code class="descname">iteroutedges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iteroutedges" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over out edges in the graph.</p> <p>If the optional nbunch (container of nodes) only out edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use out_edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.iterpred"> <code class="descname">iterpred</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.iterpred" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over predecessor nodes of n.</p> <p>Note: modifying the graph structure while iterating over node predecessors may produce unpredictable results. Use predecessors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.itersucc"> <code class="descname">itersucc</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.itersucc" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over successor nodes of n.</p> <p>Note: modifying the graph structure while iterating over node successors may produce unpredictable results. Use successors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.layout"> <code class="descname">layout</code><span class="sig-paren">(</span><em>prog='neato'</em>, <em>args=''</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.layout" title="Permalink to this definition">¶</a></dt> <dd><p>Assign positions to nodes in graph.</p> <p>Optional prog=[‘neato’|’dot’|’twopi’|’circo’|’fdp’|’nop’] will use specified graphviz layout method.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">.</span><span class="n">layout</span><span class="p">()</span> <span class="c1"># uses neato</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">.</span><span class="n">layout</span><span class="p">(</span><span class="n">prog</span><span class="o">=</span><span class="s1">'dot'</span><span class="p">)</span> </pre></div> </div> <p>Use keyword args to add additional arguments to graphviz programs.</p> <p>The layout might take a long time on large graphs.</p> </dd></dl> <dl class="attribute"> <dt id="pygraphviz.AGraph.name"> <code class="descname">name</code><a class="headerlink" href="#pygraphviz.AGraph.name" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.neighbors"> <code class="descname">neighbors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.neighbors" title="Permalink to this definition">¶</a></dt> <dd><p>Return a list of the nodes attached to n.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.neighbors_iter"> <code class="descname">neighbors_iter</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.neighbors_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over the nodes attached to n.</p> <p>Note: modifying the graph structure while iterating over node neighbors may produce unpredictable results. Use neighbors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.nodes"> <code class="descname">nodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.nodes" title="Permalink to this definition">¶</a></dt> <dd><p>Return a list of all nodes in the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.nodes_iter"> <code class="descname">nodes_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.nodes_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over all the nodes in the graph.</p> <p>Note: modifying the graph structure while iterating over the nodes may produce unpredictable results. Use nodes() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.number_of_edges"> <code class="descname">number_of_edges</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.number_of_edges" title="Permalink to this definition">¶</a></dt> <dd><p>Return the number of edges in the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.number_of_nodes"> <code class="descname">number_of_nodes</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.number_of_nodes" title="Permalink to this definition">¶</a></dt> <dd><p>Return the number of nodes in the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.order"> <code class="descname">order</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.order" title="Permalink to this definition">¶</a></dt> <dd><p>Return the number of nodes in the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.out_degree"> <code class="descname">out_degree</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>with_labels=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.out_degree" title="Permalink to this definition">¶</a></dt> <dd><p>Return the out-degree of nodes given in nbunch container.</p> <p>Using optional with_labels=True returns a dictionary keyed by node with value set to the degree.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.out_degree_iter"> <code class="descname">out_degree_iter</code><span class="sig-paren">(</span><em>nbunch=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.out_degree_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return an iterator over the out-degree of the nodes given in nbunch container.</p> <p>Returns paris of (node,degree).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.out_edges"> <code class="descname">out_edges</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.out_edges" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of out edges in the graph.</p> <p>If the optional nbunch (container of nodes) only out edges adjacent to nodes in nbunch will be returned.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.out_edges_iter"> <code class="descname">out_edges_iter</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>keys=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.out_edges_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over out edges in the graph.</p> <p>If the optional nbunch (container of nodes) only out edges adjacent to nodes in nbunch will be returned.</p> <p>Note: modifying the graph structure while iterating over edges may produce unpredictable results. Use out_edges() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.out_neighbors"> <code class="descname">out_neighbors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.out_neighbors" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of successor nodes of n.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.predecessors"> <code class="descname">predecessors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.predecessors" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of predecessor nodes of n.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.predecessors_iter"> <code class="descname">predecessors_iter</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.predecessors_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over predecessor nodes of n.</p> <p>Note: modifying the graph structure while iterating over node predecessors may produce unpredictable results. Use predecessors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.prepare_nbunch"> <code class="descname">prepare_nbunch</code><span class="sig-paren">(</span><em>nbunch=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.prepare_nbunch" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.read"> <code class="descname">read</code><span class="sig-paren">(</span><em>path</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.read" title="Permalink to this definition">¶</a></dt> <dd><p>Read graph from dot format file on path.</p> <p>path can be a file name or file handle</p> <p>use:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">G</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="s1">'file.dot'</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.remove_edge"> <code class="descname">remove_edge</code><span class="sig-paren">(</span><em>u</em>, <em>v=None</em>, <em>key=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.remove_edge" title="Permalink to this definition">¶</a></dt> <dd><p>Remove edge between nodes u and v from the graph.</p> <p>With optional key argument will only remove an edge matching (u,v,key).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.remove_edges_from"> <code class="descname">remove_edges_from</code><span class="sig-paren">(</span><em>ebunch</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.remove_edges_from" title="Permalink to this definition">¶</a></dt> <dd><p>Remove edges from ebunch (a container of edges).</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.remove_node"> <code class="descname">remove_node</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.remove_node" title="Permalink to this definition">¶</a></dt> <dd><p>Remove the single node n.</p> <p>Attempting to remove a node that isn’t in the graph will produce an error.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">remove_node</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.remove_nodes_from"> <code class="descname">remove_nodes_from</code><span class="sig-paren">(</span><em>nbunch</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.remove_nodes_from" title="Permalink to this definition">¶</a></dt> <dd><p>Remove nodes from a container nbunch.</p> <p>nbunch can be any iterable container such as a list or dictionary</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">G</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">nlist</span><span class="o">=</span><span class="p">[</span><span class="s1">'a'</span><span class="p">,</span><span class="s1">'b'</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'spam'</span><span class="p">]</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">add_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">G</span><span class="o">.</span><span class="n">remove_nodes_from</span><span class="p">(</span><span class="n">nlist</span><span class="p">)</span> </pre></div> </div> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.remove_subgraph"> <code class="descname">remove_subgraph</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.remove_subgraph" title="Permalink to this definition">¶</a></dt> <dd><p>Remove subgraph with given name.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.reverse"> <code class="descname">reverse</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.reverse" title="Permalink to this definition">¶</a></dt> <dd><p>Return copy of directed graph with edge directions reversed.</p> </dd></dl> <dl class="attribute"> <dt id="pygraphviz.AGraph.strict"> <code class="descname">strict</code><a class="headerlink" href="#pygraphviz.AGraph.strict" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if graph is strict or False if not.</p> <p>Strict graphs do not allow parallel edges or self loops.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.string"> <code class="descname">string</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.string" title="Permalink to this definition">¶</a></dt> <dd><p>Return a string (unicode) representation of graph in dot format.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.string_nop"> <code class="descname">string_nop</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.string_nop" title="Permalink to this definition">¶</a></dt> <dd><p>Return a string (unicode) representation of graph in dot format.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.subgraph"> <code class="descname">subgraph</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>name=None</em>, <em>**attr</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.subgraph" title="Permalink to this definition">¶</a></dt> <dd><p>Return subgraph induced by nodes in nbunch.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.subgraph_parent"> <code class="descname">subgraph_parent</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.subgraph_parent" title="Permalink to this definition">¶</a></dt> <dd><p>Return parent graph of subgraph or None if graph is root graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.subgraph_root"> <code class="descname">subgraph_root</code><span class="sig-paren">(</span><em>nbunch=None</em>, <em>name=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.subgraph_root" title="Permalink to this definition">¶</a></dt> <dd><p>Return root graph of subgraph or None if graph is root graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.subgraphs"> <code class="descname">subgraphs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.subgraphs" title="Permalink to this definition">¶</a></dt> <dd><p>Return a list of all subgraphs in the graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.subgraphs_iter"> <code class="descname">subgraphs_iter</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.subgraphs_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Iterator over subgraphs.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.successors"> <code class="descname">successors</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.successors" title="Permalink to this definition">¶</a></dt> <dd><p>Return list of successor nodes of n.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.successors_iter"> <code class="descname">successors_iter</code><span class="sig-paren">(</span><em>n</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.successors_iter" title="Permalink to this definition">¶</a></dt> <dd><p>Return iterator over successor nodes of n.</p> <p>Note: modifying the graph structure while iterating over node successors may produce unpredictable results. Use successors() as an alternative.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.to_directed"> <code class="descname">to_directed</code><span class="sig-paren">(</span><em>**kwds</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.to_directed" title="Permalink to this definition">¶</a></dt> <dd><p>Return directed copy of graph.</p> <p>Each undirected edge u-v is represented as two directed edges u->v and v->u.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.to_string"> <code class="descname">to_string</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.to_string" title="Permalink to this definition">¶</a></dt> <dd><p>Return a string (unicode) representation of graph in dot format.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.to_undirected"> <code class="descname">to_undirected</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.to_undirected" title="Permalink to this definition">¶</a></dt> <dd><p>Return undirected copy of graph.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.tred"> <code class="descname">tred</code><span class="sig-paren">(</span><em>args=''</em>, <em>copy=False</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.tred" title="Permalink to this definition">¶</a></dt> <dd><p>Transitive reduction of graph. Modifies existing graph.</p> <p>To create a new graph use</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">A</span><span class="o">=</span><span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">B</span><span class="o">=</span><span class="n">A</span><span class="o">.</span><span class="n">tred</span><span class="p">(</span><span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="c1"># doctest: +SKIP</span> </pre></div> </div> <p>See the graphviz “tred” program for details of the algorithm.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.unflatten"> <code class="descname">unflatten</code><span class="sig-paren">(</span><em>args=''</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.unflatten" title="Permalink to this definition">¶</a></dt> <dd><p>Adjust directed graphs to improve layout aspect ratio.</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">A</span> <span class="o">=</span> <span class="n">AGraph</span><span class="p">()</span> <span class="gp">>>> </span><span class="n">A_unflattened</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">unflatten</span><span class="p">(</span><span class="s1">'-f -l 3'</span><span class="p">)</span> <span class="gp">>>> </span><span class="n">A</span><span class="o">.</span><span class="n">unflatten</span><span class="p">(</span><span class="s1">'-f -l 1'</span><span class="p">)</span><span class="o">.</span><span class="n">layout</span><span class="p">()</span> </pre></div> </div> <p>Use keyword args to add additional arguments to graphviz programs.</p> </dd></dl> <dl class="method"> <dt id="pygraphviz.AGraph.write"> <code class="descname">write</code><span class="sig-paren">(</span><em>path=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pygraphviz.AGraph.write" title="Permalink to this definition">¶</a></dt> <dd><p>Write graph in dot format to file on path.</p> <p>path can be a file name or file handle</p> <p>use:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">G</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'file.dot'</span><span class="p">)</span> </pre></div> </div> </dd></dl> </dd></dl> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h1 class="logo"><a href="../index.html">PyGraphviz</a></h1> <h3>Navigation</h3> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="../download.html">Download</a></li> <li class="toctree-l1"><a class="reference internal" href="../install.html">Installing</a></li> <li class="toctree-l1"><a class="reference internal" href="../tutorial.html">Tutorial</a></li> <li class="toctree-l1 current"><a class="reference internal" href="index.html">Reference</a><ul class="current"> <li class="toctree-l2 current"><a class="current reference internal" href="#">AGraph Class</a></li> <li class="toctree-l2"><a class="reference internal" href="faq.html">FAQ</a></li> <li class="toctree-l2"><a class="reference internal" href="api_notes.html">API Notes</a></li> <li class="toctree-l2"><a class="reference internal" href="news.html">News</a></li> <li class="toctree-l2"><a class="reference internal" href="related.html">Related Pacakges</a></li> <li class="toctree-l2"><a class="reference internal" href="history.html">History</a></li> <li class="toctree-l2"><a class="reference internal" href="credits.html">Credits</a></li> <li class="toctree-l2"><a class="reference internal" href="legal.html">Legal</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../examples.html">Examples</a></li> </ul> <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="../index.html">Documentation overview</a><ul> <li><a href="index.html">Reference</a><ul> <li>Previous: <a href="index.html" title="previous chapter">Reference</a></li> <li>Next: <a href="faq.html" title="next chapter">FAQ</a></li> </ul></li> </ul></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="footer"> ©2004-2019, PyGraphviz Developers. | Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.3</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> </div> </body> </html>