Hướng dẫn graph tree python - cây đồ thị python

Tìm hiểu về cây và cách thực hiện chúng.

Rễ

Một cây như một cấu trúc dữ liệu có thể nhanh chóng trở thành một môn toán học phức tạp [kiểm tra wiki], chúng ta được bao quanh bởi những thứ thực và ảo [thực sự dữ liệu] có thể được mô hình hóa và biểu diễn bởi một cây Hiểu ngay cả ở cấp độ cơ bản.

Tải xuống trang này dưới dạng tệp mã Python;

Tải xuống trang này dưới dạng máy tính xách tay Jupyter [không có đầu ra];

Tải xuống trang này dưới dạng máy tính xách tay Jupyter [có đầu ra].

>>> import networkx as nx
>>> G = nx.Graph[]

Hướng dẫn này có thể giúp bạn bắt đầu làm việc với NetworkX.hashable object e.g., a text string, an image, an XML object, another Graph, a customized node object, etc.

Tạo biểu đồ#

Tạo một biểu đồ trống không có nút và không có cạnh.

Nodes#

Theo định nghĩa,

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
6 là một tập hợp các nút [đỉnh] cùng với các cặp nút được xác định [được gọi là các cạnh, liên kết, v.v.]. Trong NetworkX, các nút có thể là bất kỳ đối tượng có thể băm nào, ví dụ: chuỗi văn bản, hình ảnh, đối tượng XML, biểu đồ khác, đối tượng nút tùy chỉnh, v.v.graph generator functions and facilities to read and write graphs in many formats. To get started though we’ll look at simple manipulations. You can add one node at a time,

Ghi chúiterable container, such as a list

>>> G.add_nodes_from[[2, 3]]

Đối tượng Python từ

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
7 không được phép sử dụng làm nút. Nó xác định xem các đối số chức năng tùy chọn đã được chỉ định trong nhiều chức năng.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]

Biểu đồ

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
8 có thể được phát triển theo nhiều cách. NetworkX bao gồm nhiều chức năng và phương tiện tạo đồ thị để đọc và ghi biểu đồ ở nhiều định dạng. Để bắt đầu mặc dù chúng tôi sẽ xem xét các thao tác đơn giản. Bạn có thể thêm một nút cùng một lúc,below.

hoặc thêm các nút từ bất kỳ thùng chứa nào, chẳng hạn như danh sách

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]

Bạn cũng có thể thêm các nút cùng với các thuộc tính nút nếu container của bạn mang lại 2 bộ dữ liệu của mẫu

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
9:

Các thuộc tính nút được thảo luận thêm dưới đây.

Tạo biểu đồ#

Tạo một biểu đồ trống không có nút và không có cạnh.

Edges#

Theo định nghĩa,

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
6 là một tập hợp các nút [đỉnh] cùng với các cặp nút được xác định [được gọi là các cạnh, liên kết, v.v.]. Trong NetworkX, các nút có thể là bất kỳ đối tượng có thể băm nào, ví dụ: chuỗi văn bản, hình ảnh, đối tượng XML, biểu đồ khác, đối tượng nút tùy chỉnh, v.v.

>>> G.add_edge[1, 2]
>>> e = [2, 3]
>>> G.add_edge[*e]  # unpack edge tuple*

Ghi chú

>>> G.add_edges_from[[[1, 2], [1, 3]]]

Đối tượng Python từ

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
7 không được phép sử dụng làm nút. Nó xác định xem các đối số chức năng tùy chọn đã được chỉ định trong nhiều chức năng.ebunch of edges. An ebunch is any iterable container of edge-tuples. An edge-tuple can be a 2-tuple of nodes or a 3-tuple with 2 nodes followed by an edge attribute dictionary, e.g.,
>>> G.add_edge[1, 2]
>>> e = [2, 3]
>>> G.add_edge[*e]  # unpack edge tuple*
9. Edge attributes are discussed further below.

>>> G.add_edges_from[H.edges]

Không có khiếu nại khi thêm các nút hoặc cạnh hiện có. Ví dụ: sau khi xóa tất cả các nút và cạnh,

Chúng tôi thêm các nút/cạnh mới và NetworkX lặng lẽ bỏ qua bất kỳ nút nào đã có mặt.

>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']

Ở giai đoạn này, biểu đồ

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
8 bao gồm 8 nút và 3 cạnh, như có thể thấy bởi:

>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3

Ghi chú

Thứ tự báo cáo kề [ví dụ:

>>> G.add_edges_from[[[1, 2], [1, 3]]]
1,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
2,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
3] là thứ tự bổ sung cạnh. Tuy nhiên, thứ tự của G.Edges là thứ tự của các liền kề bao gồm cả thứ tự của các nút và mỗi nút liền kề. Xem ví dụ dưới đây:

>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]

Kiểm tra các yếu tố của biểu đồ#

Chúng ta có thể kiểm tra các nút và cạnh. Bốn thuộc tính đồ thị cơ bản tạo điều kiện cho báo cáo:

>>> G.add_edges_from[[[1, 2], [1, 3]]]
4,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
5,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
1 và
>>> G.add_edges_from[[[1, 2], [1, 3]]]
7. Đây là những khung nhìn giống như được đặt của các nút, cạnh, hàng xóm [liền kề] và mức độ của các nút trong một biểu đồ. Họ cung cấp một chế độ xem chỉ đọc được cập nhật liên tục vào cấu trúc đồ thị. Chúng cũng giống như chính thức ở chỗ bạn có thể tra cứu các thuộc tính dữ liệu nút và cạnh thông qua các chế độ xem và lặp với các thuộc tính dữ liệu bằng các phương thức
>>> G.add_edges_from[[[1, 2], [1, 3]]]
8,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
9. Nếu bạn muốn một loại container cụ thể thay vì chế độ xem, bạn có thể chỉ định một. Ở đây chúng tôi sử dụng danh sách, mặc dù các bộ, dicts, bộ dữ liệu và các thùng chứa khác có thể tốt hơn trong các bối cảnh khác.

>>> G.add_nodes_from[[2, 3]]
0

Người ta có thể chỉ định để báo cáo các cạnh và mức độ từ một tập hợp con của tất cả các nút bằng cách sử dụng nbunch. Một nbunch là bất kỳ:

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
7 [có nghĩa là tất cả các nút], một nút hoặc một thùng chứa các nút không phải là một nút trong biểu đồ.nbunch. An nbunch is any of:
>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
7 [meaning all nodes], a node, or an iterable container of nodes that is not itself a node in the graph.

>>> G.add_nodes_from[[2, 3]]
1

Xóa các phần tử khỏi biểu đồ#

Người ta có thể loại bỏ các nút và cạnh khỏi biểu đồ theo cách tương tự như thêm. Sử dụng các phương pháp

>>> G.add_edges_from[H.edges]
1,
>>> G.add_edges_from[H.edges]
2,
>>> G.add_edges_from[H.edges]
3 và
>>> G.add_edges_from[H.edges]
4, ví dụ:

>>> G.add_nodes_from[[2, 3]]
2

Sử dụng các bộ xây dựng đồ thị#

Các đối tượng đồ thị không phải được xây dựng tăng dần - dữ liệu chỉ định cấu trúc đồ thị có thể được truyền trực tiếp đến các hàm tạo của các lớp biểu đồ khác nhau. Khi tạo cấu trúc đồ thị bằng cách khởi tạo một trong các lớp biểu đồ, bạn có thể chỉ định dữ liệu theo một số định dạng.

>>> G.add_nodes_from[[2, 3]]
3

Sử dụng cái gì làm nút và cạnh#

Bạn có thể nhận thấy rằng các nút và cạnh không được chỉ định là đối tượng mạng. Điều này để bạn tự do sử dụng các vật phẩm có ý nghĩa làm nút và cạnh. Các lựa chọn phổ biến nhất là các số hoặc chuỗi, nhưng một nút có thể là bất kỳ đối tượng có thể băm nào [ngoại trừ

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
7] và một cạnh có thể được liên kết với bất kỳ đối tượng nào
>>> G.add_edges_from[H.edges]
6 sử dụng
>>> G.add_edges_from[H.edges]
7.

Ví dụ,

>>> G.add_edges_from[H.edges]
8 và
>>> G.add_edges_from[H.edges]
9 có thể là đối tượng protein từ Ngân hàng dữ liệu protein RCSB và
>>> G.add_edges_from[H.edges]
6 có thể đề cập đến bản ghi XML về các ấn phẩm chi tiết các quan sát thử nghiệm về sự tương tác của chúng.

Chúng tôi đã tìm thấy sức mạnh này khá hữu ích, nhưng sự lạm dụng của nó có thể dẫn đến hành vi đáng ngạc nhiên trừ khi một người quen thuộc với Python. Nếu nghi ngờ, hãy xem xét sử dụng

>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
1 để có được biểu đồ truyền thống hơn với các nhãn số nguyên.

Truy cập các cạnh và hàng xóm#

Ngoài các chế độ xem

>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
2 và
>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
3, có thể truy cập vào các cạnh và hàng xóm bằng cách sử dụng ký hiệu đăng ký.

>>> G.add_nodes_from[[2, 3]]
4

Bạn có thể nhận/đặt các thuộc tính của một cạnh bằng ký hiệu đăng ký nếu cạnh đã tồn tại.

>>> G.add_nodes_from[[2, 3]]
5

Kiểm tra nhanh tất cả các cặp [nút, kề] được đạt được bằng cách sử dụng

>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
4 hoặc
>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
5. Lưu ý rằng đối với các biểu đồ không mong muốn, phép lặp liền kề nhìn thấy mỗi cạnh hai lần.

>>> G.add_nodes_from[[2, 3]]
6

Truy cập thuận tiện vào tất cả các cạnh đạt được với thuộc tính cạnh.

>>> G.add_nodes_from[[2, 3]]
7

Thêm các thuộc tính vào biểu đồ, nút và cạnh#

Các thuộc tính như trọng lượng, nhãn, màu sắc hoặc bất kỳ đối tượng Python nào bạn thích, có thể được gắn vào đồ thị, nút hoặc cạnh.

Mỗi biểu đồ, nút và cạnh có thể giữ các cặp thuộc tính khóa/giá trị trong một từ điển thuộc tính được liên kết [các phím phải có thể băm]. Theo mặc định, chúng trống, nhưng các thuộc tính có thể được thêm hoặc thay đổi bằng cách sử dụng

>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
6,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
7 hoặc thao tác trực tiếp của các từ điển thuộc tính có tên
>>> G.add_edges_from[[[1, 2], [1, 3]]]
>>> G.add_node[1]
>>> G.add_edge[1, 2]
>>> G.add_node["spam"]        # adds node "spam"
>>> G.add_nodes_from["spam"]  # adds 4 nodes: 's', 'p', 'a', 'm'
>>> G.add_edge[3, 'm']
8,
>>> G.add_edges_from[[[1, 2], [1, 3]]]
4 và
>>> G.add_edges_from[[[1, 2], [1, 3]]]
5 cho biểu đồ
>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
8.

Thuộc tính đồ thị#

Gán các thuộc tính biểu đồ khi tạo biểu đồ mới

>>> G.add_nodes_from[[2, 3]]
8

Hoặc bạn có thể sửa đổi các thuộc tính sau

>>> G.add_nodes_from[[2, 3]]
9

Thuộc tính nút#

Thêm các thuộc tính nút bằng cách sử dụng

>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
2,
>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
3 hoặc
>>> G.add_edges_from[[[1, 2], [1, 3]]]
4

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
0

Lưu ý rằng việc thêm một nút vào

>>> G.add_edges_from[[[1, 2], [1, 3]]]
4 không thêm nó vào biểu đồ, sử dụng
>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
6 để thêm các nút mới. Tương tự cho các cạnh.

Thuộc tính cạnh#

Thêm/thay đổi các thuộc tính cạnh bằng cách sử dụng ký hiệu

>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
7,
>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
8 hoặc đăng ký.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
1

Thuộc tính đặc biệt

>>> G.number_of_nodes[]
8
>>> G.number_of_edges[]
3
9 phải là số vì nó được sử dụng bởi các thuật toán yêu cầu các cạnh có trọng số.

Đồ thị được định hướng#

Lớp

>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
0 cung cấp các phương thức và thuộc tính bổ sung cụ thể cho các cạnh được định hướng, ví dụ:
>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
1,
>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
2,
>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
3,
>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
4, v.v. và
>>> DG = nx.DiGraph[]
>>> DG.add_edge[2, 1]   # adds the nodes in order 2, 1
>>> DG.add_edge[1, 3]
>>> DG.add_edge[2, 4]
>>> DG.add_edge[1, 2]
>>> assert list[DG.successors[2]] == [1, 4]
>>> assert list[DG.edges] == [[2, 1], [2, 4], [1, 3], [1, 2]]
9 mặc dù đôi khi có thể cảm thấy không nhất quán.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
2

Một số thuật toán chỉ hoạt động cho các biểu đồ được định hướng và các thuật toán khác không được xác định rõ cho các biểu đồ có hướng. Thật vậy, xu hướng gộp các biểu đồ định hướng và không mong muốn lại với nhau là nguy hiểm. Nếu bạn muốn coi một biểu đồ được định hướng là không được hướng đến một số phép đo, bạn có thể nên chuyển đổi nó bằng cách sử dụng

>>> G.add_nodes_from[[2, 3]]
00 hoặc với

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
3

Multigraphs#

NetworkX cung cấp các lớp cho các biểu đồ cho phép nhiều cạnh giữa bất kỳ cặp nút nào. Các lớp

>>> G.add_nodes_from[[2, 3]]
01 và
>>> G.add_nodes_from[[2, 3]]
02 cho phép bạn thêm cùng một cạnh hai lần, có thể với dữ liệu cạnh khác nhau. Điều này có thể mạnh mẽ cho một số ứng dụng, nhưng nhiều thuật toán không được xác định rõ trên các biểu đồ đó. Trường hợp kết quả được xác định rõ, ví dụ:
>>> G.add_nodes_from[[2, 3]]
03 chúng tôi cung cấp chức năng. Nếu không, bạn nên chuyển đổi thành một biểu đồ tiêu chuẩn theo cách làm cho phép đo được xác định rõ.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
4

Trình tạo đồ thị và hoạt động đồ thị#

Ngoài việc xây dựng biểu đồ nút theo từng nút hoặc từng cạnh, chúng cũng có thể được tạo bởi

1. Áp dụng các hoạt động đồ thị cổ điển, chẳng hạn như:#

>>> G.add_nodes_from[[2, 3]]
04[G, nbunch]

Trả về các sơ đồ con gây ra trên các nút trong nbunch.

>>> G.add_nodes_from[[2, 3]]
05[G, H[, rename, name]]

Kết hợp đồ thị G và H.

>>> G.add_nodes_from[[2, 3]]
06[G, H]

Kết hợp đồ thị G và H.

>>> G.add_nodes_from[[2, 3]]
07[G, H]

Trả lại sản phẩm Cartesian của G và H.

>>> G.add_nodes_from[[2, 3]]
08[G, H]

Kết hợp đồ thị G với H bằng cách kết hợp các nút và cạnh thành một biểu đồ.

>>> G.add_nodes_from[[2, 3]]
09[G]

Trả về phần bổ sung đồ thị của G.

>>> G.add_nodes_from[[2, 3]]
10[G[, with_data]]

Trả về một bản sao của đồ thị G với tất cả các cạnh bị xóa.

>>> G.add_nodes_from[[2, 3]]
11[graph]

Trả về một chế độ xem không mong muốn của biểu đồ

>>> G.add_nodes_from[[2, 3]]
12.

>>> G.add_nodes_from[[2, 3]]
13[graph]

Trả về một chế độ xem có hướng của biểu đồ

>>> G.add_nodes_from[[2, 3]]
12.

2. Sử dụng cuộc gọi đến một trong các biểu đồ nhỏ cổ điển, ví dụ:#

3. Sử dụng trình tạo [mang tính xây dựng] cho biểu đồ cổ điển, ví dụ:#

>>> G.add_nodes_from[[2, 3]]
15[n[, create_using]]

Trả về đồ thị hoàn chỉnh

>>> G.add_nodes_from[[2, 3]]
16 với N nút.

>>> G.add_nodes_from[[2, 3]]
17[n1, n2[, create_using]]

Trả về đồ thị Bipartite hoàn chỉnh

>>> G.add_nodes_from[[2, 3]]
18.

>>> G.add_nodes_from[[2, 3]]
19[m1, m2[, create_using]]

Trả về biểu đồ barbell: hai biểu đồ hoàn chỉnh được kết nối bởi một đường dẫn.

>>> G.add_nodes_from[[2, 3]]
20[m, n[, create_using]]

Trả về biểu đồ Lollipop;

>>> G.add_nodes_from[[2, 3]]
21 được kết nối với
>>> G.add_nodes_from[[2, 3]]
22.

như vậy:

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
5

4. Sử dụng trình tạo đồ thị ngẫu nhiên, ví dụ,#

>>> G.add_nodes_from[[2, 3]]
23[n, p[, seed, directed]]

Trả về biểu đồ ngẫu nhiên \ [g_ {n, p} \], còn được gọi là biểu đồ erdős-rényi hoặc biểu đồ nhị thức.\[G_{n,p}\] random graph, also known as an Erdős-Rényi graph or a binomial graph.

>>> G.add_nodes_from[[2, 3]]
24[n, k, p[, seed]]

Trả về một biểu đồ thế giới nhỏ Watts Watts Strogatz.

>>> G.add_nodes_from[[2, 3]]
25[n, m[, seed, ...]]

Trả về một biểu đồ ngẫu nhiên bằng cách sử dụng tệp đính kèm ưu tiên của Barabási, Albert

>>> G.add_nodes_from[[2, 3]]
26[n, p1, p2[, seed]]

Trả về một biểu đồ tôm hùm ngẫu nhiên.

như vậy:

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
6

4. Sử dụng trình tạo đồ thị ngẫu nhiên, ví dụ,#

Trả về biểu đồ ngẫu nhiên \ [g_ {n, p} \], còn được gọi là biểu đồ erdős-rényi hoặc biểu đồ nhị thức.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
7

Trả về một biểu đồ thế giới nhỏ Watts Watts Strogatz.Reading and writing graphs and for graph generator functions see Graph generators

Trả về một biểu đồ ngẫu nhiên bằng cách sử dụng tệp đính kèm ưu tiên của Barabási, Albert

Trả về một biểu đồ tôm hùm ngẫu nhiên.

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
8

5. Đọc một biểu đồ được lưu trữ trong một tệp bằng các định dạng biểu đồ phổ biến#

>>> G.add_nodes_from[[
...     [4, {"color": "red"}],
...     [5, {"color": "green"}],
... ]]
9

NetworkX hỗ trợ nhiều định dạng phổ biến, chẳng hạn như danh sách cạnh, danh sách liền kề, GML, GraphML, Pickle, Leda và các định dạng khác.Algorithms for details on graph algorithms supported.

Để biết chi tiết về định dạng đồ thị, xem đọc và ghi biểu đồ và cho các hàm tạo biểu đồ, hãy xem Trình tạo biểu đồ

Phân tích đồ thị#networkx.drawing module and will be imported if possible.

Cấu trúc của

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
8 có thể được phân tích bằng các hàm lý thuyết đồ thị khác nhau như:

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
0

Một số chức năng với đầu ra lớn lặp qua [nút, giá trị] 2-n-n-nế. Chúng dễ dàng được lưu trữ trong cấu trúc

>>> G.add_nodes_from[[2, 3]]
28 nếu bạn mong muốn.

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
1

Xem thuật toán để biết chi tiết về thuật toán đồ thị được hỗ trợ.

Vẽ đồ thị#

NetworkX không chủ yếu là gói vẽ đồ thị nhưng bản vẽ cơ bản với matplotlib cũng như giao diện để sử dụng gói phần mềm graphviz nguồn mở được bao gồm. Đây là một phần của mô -đun NetworkX.Drawing và sẽ được nhập nếu có thể.

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
2

Xem thuật toán để biết chi tiết về thuật toán đồ thị được hỗ trợ.

Vẽ đồ thị#

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
3

Xem thuật toán để biết chi tiết về thuật toán đồ thị được hỗ trợ.

Vẽ đồ thị#

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
4

NetworkX không chủ yếu là gói vẽ đồ thị nhưng bản vẽ cơ bản với matplotlib cũng như giao diện để sử dụng gói phần mềm graphviz nguồn mở được bao gồm. Đây là một phần của mô -đun NetworkX.Drawing và sẽ được nhập nếu có thể.

>>> H = nx.path_graph[10]
>>> G.add_nodes_from[H]
5

Đầu tiên nhập giao diện cốt truyện Matplotlib, [PYLAB cũng hoạt động]Drawing for additional details.

  • Để kiểm tra xem việc nhập

    >>> G.add_nodes_from[[2, 3]]
    
    29 có thành công rút không

  • [PNG, Hires.png, PDF]

  • Tải xuống trang này dưới dạng máy tính xách tay Jupyter [có đầu ra].

Bài Viết Liên Quan

Chủ Đề