# Functions#

Functional interface to graph methods and assorted utilities.

## Graph#

 `degree`(G[, nbunch, weight]) Returns a degree view of single node or of nbunch of nodes. Returns a list of the frequency of each degree value. Returns the density of a graph. `create_empty_copy`(G[, with_data]) Returns a copy of the graph G with all of the edges removed. Return True if graph is directed. `to_directed`(graph) Returns a directed view of the graph `graph`. `to_undirected`(graph) Returns an undirected view of the graph `graph`. Returns True if `G` has no edges. `add_star`(G_to_add_to, nodes_for_star, **attr) Add a star to Graph G_to_add_to. `add_path`(G_to_add_to, nodes_for_path, **attr) Add a path to the Graph G_to_add_to. `add_cycle`(G_to_add_to, nodes_for_cycle, **attr) Add a cycle to the Graph G_to_add_to. `subgraph`(G, nbunch) Returns the subgraph induced on nodes in nbunch. `induced_subgraph`(G, nbunch) Returns a SubGraph view of `G` showing only nodes in nbunch. `restricted_view`(G, nodes, edges) Returns a view of `G` with hidden nodes and edges. `edge_subgraph`(G, edges) Returns a view of the subgraph induced by the specified edges.

## Nodes#

 Returns a NodeView over the graph nodes. Returns the number of nodes in the graph. `neighbors`(G, n) Returns an iterator over all neighbors of node n. `all_neighbors`(graph, node) Returns all of the neighbors of a node in the graph. `non_neighbors`(graph, node) Returns the non-neighbors of the node in the graph. `common_neighbors`(G, u, v) Returns the common neighbors of two nodes in a graph.

## Edges#

 `edges`(G[, nbunch]) Returns an edge view of edges incident to nodes in nbunch. Returns the number of edges in the graph. Returns the density of a graph. `non_edges`(graph) Returns the nonexistent edges in the graph.

## Self loops#

 `selfloop_edges`(G[, data, keys, default]) Returns an iterator over selfloop edges. Returns the number of selfloop edges. Returns an iterator over nodes with self loops.

## Attributes#

 `is_weighted`(G[, edge, weight]) Returns True if `G` has weighted edges. `is_negatively_weighted`(G[, edge, weight]) Returns True if `G` has negatively weighted edges. `set_node_attributes`(G, values[, name]) Sets node attributes from a given value or dictionary of values. `get_node_attributes`(G, name[, default]) Get node attributes from graph `set_edge_attributes`(G, values[, name]) Sets edge attributes from a given value or dictionary of values. `get_edge_attributes`(G, name[, default]) Get edge attributes from graph

## Paths#

 `is_path`(G, path) Returns whether or not the specified path exists. `path_weight`(G, path, weight) Returns total cost associated with specified path and weight

## Freezing graph structure#

 Modify graph to prevent further change by adding or removing nodes or edges. Returns True if graph is frozen.