Warning
This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.
random_geometric_graph¶
-
random_geometric_graph(n, radius, dim=2, pos=None)[source]¶ Returns a random geometric graph in the unit cube.
The random geometric graph model places
nnodes uniformly at random in the unit cube. Two nodes are joined by an edge if the Euclidean distance between the nodes is at mostradius.Parameters: Returns: Return type: Examples
Create a random geometric graph on twenty nodes where nodes are joined by an edge if their distance is at most 0.1:
>>> G = nx.random_geometric_graph(20, 0.1)
Notes
This algorithm currently only supports Euclidean distance.
This uses an
algorithm to build the graph. A faster algorithm
is possible using k-d trees.The
poskeyword argument can be used to specify node positions so you can create an arbitrary distribution and domain for positions.For example, to use a 2D Gaussian distribution of node positions with mean (0, 0) and standard deviation 2:
>>> import random >>> n = 20 >>> p = {i: (random.gauss(0, 2), random.gauss(0, 2)) for i in range(n)} >>> G = nx.random_geometric_graph(n, 0.2, pos=p)
References
[1] Penrose, Mathew, Random Geometric Graphs, Oxford Studies in Probability, 5, 2003.