Rumah  >  Artikel  >  Java  >  Lukis graf lengkap menggunakan Networkx dalam Python

Lukis graf lengkap menggunakan Networkx dalam Python

王林
王林ke hadapan
2023-09-06 16:21:121165semak imbas

Lukis graf lengkap menggunakan Networkx dalam Python

Pengenalan

Salah satu idea terpenting dalam teori graf ialah idea keseluruhan graf. Ia terdiri daripada "titik" yang dipanggil "nod", yang semuanya disambungkan oleh "tepi". Dengan kata lain, ia mempunyai lebih banyak pautan. Graf yang lengkap adalah penting dalam banyak bidang, seperti rangkaian komputer, rangkaian sosial dan menyelesaikan masalah pengoptimuman.

Networkx ialah alat Python yang berkuasa yang membolehkan pengaturcara dan saintis data memproses dan melihat carta kompleks dengan mudah. Pengguna boleh membuat, mengedit, memvisualisasikan dan memindahkan gambar rajah dengan mudah menggunakan antara muka Networkx yang mudah digunakan dan banyak ciri. Oleh itu, ia merupakan alat penting untuk memahami dunia yang kaya dengan teori graf dan cara ia boleh digunakan pada struktur data dan kawasan lain.

Pasang Networkx

Networkx boleh ditambahkan pada Python menggunakan dua pengurus pakej yang paling terkenal. Pakej yang digunakan untuk membinanya dipanggil pip dan conda. Bagaimanapun, itu sahaja yang anda perlu lakukan untuk mengaktifkan dan menjalankan Networkx -

Gunakan pip (untuk Windows

  • Buka antara muka baris arahan (cth. Command Prompt pada Windows, Terminal pada Mac OS/Linux).

  • Pastikan Python dipasang pada sistem anda. Anda boleh menyemak ini dengan menjalankan python --version dari baris arahan.

  • Kemas kini pip kepada versi terkini dengan melaksanakan pemasangan pip --naik taraf pip.

  • Untuk memasang Networkx, hanya taip pip install networkx dan tekan Enter.

pip kini akan memuat turun dan memasang versi terkini Networkx dan kebergantungannya secara automatik

Menggunakan conda (untuk Mac)

  • Jika anda telah memasang Anaconda atau Miniconda, buka Terminal atau Anaconda Prompt.

  • Jika anda tidak mempunyai Anaconda atau Miniconda, sila muat turun dan pasang versi yang sesuai daripada tapak web rasmi (https://www.anaconda.com/products/individual).

  • Selepas membuka Anaconda Prompt, laksanakan arahan berikut: conda pasang -c conda-forge networkx.

  • conda kini akan menyelesaikan kebergantungan dan memasang Networkx pada sistem anda.

Selepas melengkapkan mana-mana langkah di atas, Networkx harus berjaya dipasang pada komputer anda dan anda boleh mula menggunakannya untuk menjana dan menganalisis graf dalam Python.

Untuk mengesahkan pemasangan, anda boleh menyepadukan Networkx ke dalam cangkerang atau skrip interaktif Python dengan menaip import networkx. Jika tiada ralat, pemasangan berjaya dan anda boleh menggunakan Networkx untuk meneroka tugas dan algoritma berkaitan graf yang berbeza

Buat carta lengkap

Networkx memudahkan untuk membina keseluruhan graf. Graf lengkap ialah graf di mana tepi unik menghubungkan setiap pasangan nod unik. Kaedah complete_graph() dalam Networkx boleh digunakan untuk membina keseluruhan graf. Bilangan nod dalam graf menggambarkan cara menjana keseluruhan graf yang terdiri daripada lima nod

import networkx as nx

# Create a complete graph with 5 nodes
complete_graph = nx.complete_graph(5)

Tambah nod dan tepi

Networkx memudahkan untuk menambah nod dan pautan pada graf anda, sama ada graf penuh atau tidak. Kami menambah satu nod menggunakan kaedah add_node() dan mengambil nama nod sebagai input. Sebagai contoh -

Kod Python

complete_graph.add_node(6)
Kaedah

add_nodes_from() mengambil senarai label nod sebagai parameter, yang membolehkan kami menambah berbilang nod sekaligus. Kaedah untuk memasukkan tepi adalah sama. Gunakan kaedah add_edge() untuk membuat pautan antara nod 1 dan 2 -

Kod Python

complete_graph.add_edge(1, 2)

Anda boleh menghantar senarai tupel (di mana setiap tupel mewakili tepi antara dua nod) kepada kaedah add_edges_from() untuk menambah berbilang tepi sekali gus.

Kod Python

edges_to_add = [(3, 4), (4, 0), (2, 3)]
complete_graph.add_edges_from(edges_to_add)

Networkx juga membolehkan anda menyesuaikan tepi dengan sifat tambahan seperti pemberat dan label, yang boleh berguna dalam banyak kes penggunaan berasaskan graf.

Visualkan carta lengkap

Memahami struktur dan sifat rajah memerlukan gambaran keseluruhannya. Networkx berfungsi bersama-sama dengan kit alat Matplotlib untuk menjadikan visualisasi graf menjadi mudah. Kaedah draw() Networkx membolehkan kami membuat graf komprehensif -

Kod Python

import matplotlib.pyplot as plt

# Draw the complete graph
nx.draw(complete_graph, with_labels=True, node_color='skyblue', node_size=800,
font_size=10)

# Show the plot
plt.show()

Akses maklumat grafik

Networkx menyediakan anda dengan cara yang berbeza untuk mendapatkan butiran penting bagi keseluruhan rajah. Sebagai contoh, kita boleh menggunakan kaedah nod() untuk mendapatkan senarai nod -

Kod Python

all_nodes = complete_graph.nodes()

Kita boleh menggunakan kaedah edges() untuk mendapatkan senarai edge

Kod Python

all_edges = complete_graph.edges()

Kami juga boleh menggunakan kaedah Degree() untuk mendapatkan taburan darjah nod, yang memberikan kamus dengan nod sebagai kunci dan darjah sebagai nilai

Kod Python

degree_distribution = complete_graph.degree()

Dengan melihat maklumat ini, kita boleh belajar banyak tentang struktur dan sifat keseluruhan graf, yang penting untuk banyak kaedah dan aplikasi yang menggunakan graf.

Apl

Gambar rajah yang lengkap mempunyai banyak kegunaan dalam dunia nyata kerana ia menunjukkan bagaimana segala-galanya dikaitkan. Mereka juga merupakan cara terbaik untuk memahami hubungan yang kompleks

  • Rangkaian Sosial - Gambar rajah lengkap menunjukkan cara orang dalam kumpulan sosial kecil berhubung antara satu sama lain. Ini pada asasnya digunakan di bandar kecil atau sekumpulan kawan

  • Sistem Pengangkutan - Rangkaian pengangkutan lengkap dengan sambungan yang jelas antara semua lokasi dan dipaparkan dengan gambar rajah lengkap. Mereka membantu memikirkan pendekatan terbaik dan merancang infrastruktur

  • Rangkaian Komputer - Semua gajet dalam rangkaian boleh berhubung terus antara satu sama lain dalam gambar rajah yang lengkap. Ia membantu orang ramai memahami cara data dihantar dan cara mengendalikan ralat.

Kesimpulan

Ringkasnya, bekerja dengan graf lengkap dalam Python menggunakan Networkx membuka dunia baharu struktur data dan pilihan teori graf. Networkx menyediakan anda cara yang mudah digunakan dan cekap untuk mencipta, melihat dan memeriksa gambar rajah yang lengkap. Graf yang lengkap adalah penting untuk memahami kerumitan rangkaian yang disambungkan sepenuhnya, menjadikannya berguna dalam banyak situasi dunia sebenar. Gambar rajah lengkap menunjukkan cara ketersambungan dan kelajuan bermain dalam segala-galanya daripada rangkaian sosial kepada sistem pengangkutan dan rangkaian komputer. Dengan menggunakan kuasa Networkx, pembangun dan penyelidik boleh mempelajari lebih lanjut, menambah baik reka bentuk sistem dan menyelesaikan masalah sukar dalam pelbagai bidang. Sesiapa yang berminat dalam analisis data berasaskan graf akan mendapati ia berfaedah untuk melihat graf penuh menggunakan Python dan Networkx.

Atas ialah kandungan terperinci Lukis graf lengkap menggunakan Networkx dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam