Python membuat grafik jaringan dari kerangka data

Panda sendiri tidak dapat memplot data jaringan. Sebaliknya, kita harus bergantung pada dua pustaka lain, NetworkX dan Matplotlib. NetworkX adalah pustaka Python standar untuk bekerja dengan jaringan. Saya memiliki buku teks yang akan datang, seperti ini, yang memandu pengguna melalui NetworkX. Matplotlib adalah salah satu pustaka plotting standar. Tujuan dari buku catatan singkat ini adalah untuk menyediakan kode yang diperlukan untuk membuat Panda bekerja dengan NetworkX dan Matplotlib untuk mengambil jaringan yang disimpan dalam Pandas DataFrame dan mengubah hubungan menjadi grafik

import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt

Mari sekarang muat data kita dan lihat seperti apa tampilannya

df = pd.read_csv("data/network.csv")
_

sourcetarget0TomRose1RoseRosita2JerryJeff3JeffLarry4CarmenCarmen5RositaRosita6LarryCarmen7LarryJerry

Ini adalah format standar yang cantik untuk jaringan. Kami memiliki dua kolom data, sumber, dan target. Bayangkan menggambar garis untuk mendemonstrasikan jaringan, sumbernya adalah tempat Anda mulai menggambar garis dan targetnya adalah tempat garis itu berakhir. Ini dikenal sebagai gaya dalam teori jaringan dan penting untuk memahami hubungan antara node, atau titik individu, dalam grafik jaringan

Kita dapat menggunakan fungsi bawaan NetworkX from_pandas_edgelist() dan memasukkan data tersebut langsung ke edgelist

Dash adalah kerangka kerja sumber terbuka untuk membangun aplikasi analitik, tanpa Javascript diperlukan, dan terintegrasi erat dengan pustaka grafik Plotly

Pelajari tentang cara memasang Dash di https. //berlari. merencanakan. ly/instalasi

Di mana pun di halaman ini Anda melihat fig.show(), Anda dapat menampilkan gambar yang sama di aplikasi Dash dengan meneruskannya ke argumen figure dari komponen Graph dari paket dash_core_components bawaan seperti ini

Pandas DataFrame harus berisi setidaknya dua kolom nama node dan nol atau lebih kolom atribut edge. Setiap baris akan diproses sebagai satu edge instance

Catatan. Fungsi ini berulang pada DataFrame. nilai, yang tidak dijamin untuk mempertahankan tipe data di seluruh kolom dalam baris. Ini hanya masalah jika baris Anda sepenuhnya numerik dan campuran int dan float. Dalam hal ini, semua nilai akan dikembalikan sebagai pelampung. Lihat DataFrame. dokumentasi iterrows sebagai contoh

Parameter . df Bingkai Data Panda

Representasi daftar tepi dari grafik

sumber str atau int

Nama kolom yang valid (string atau integer) untuk node sumber (untuk kasus yang diarahkan)

target str atau int

Nama kolom yang valid (string atau integer) untuk node target (untuk case yang diarahkan)

edge_attr str atau int, iterable, True, atau None

Nama kolom yang valid (str atau int) atau iterable dari nama kolom yang digunakan untuk mengambil item dan menambahkannya ke grafik sebagai atribut tepi. Jika , semua kolom yang tersisa akan ditambahkan. Jika , tidak ada atribut tepi yang ditambahkan ke grafik

create_using Pembuat grafik NetworkX, opsional (default=nx. Grafik)

Jenis grafik yang akan dibuat. Jika grafik instance, maka dibersihkan sebelum diisi

edge_key str atau Tidak Ada, opsional (default=Tidak ada)

Nama kolom yang valid untuk tombol tepi (untuk MultiGraph). Nilai dalam kolom ini digunakan untuk kunci tepi saat menambahkan tepi jika create_using adalah multigraf

namaklub0Adams JohnNorth Caucus1Adams JohnLong Room Club2Adams SamuelNorth Caucus3Adams SamuelLong Room Club4Adams SamuelBoston Committee

Konversikan ke grafik

Setiap baris adalah tepi dengan sumber dan target. Jaringan akan secara otomatis membuat node untuk Anda berdasarkan namanya

Bagan jaringan didasari oleh node. Node-node ini saling terhubung oleh edge. Jadi format dasarnya adalah bingkai data di mana setiap baris menggambarkan koneksi

Di sini kami membuat bingkai data dengan 4 baris, menjelaskan 4 koneksi plot ini. Jadi jika Anda memiliki file csv dengan koneksi Anda, muat dan Anda siap memvisualisasikannya

Dalam tutorial ini, kami akan mencoba membuat grafik jaringan yang luar biasa dan interaktif dari bingkai data panda untuk menyempurnakannya

Baca juga. Paket NetworkX – Pustaka Grafik Python

Tanpa penundaan, Mari kita mulai


Memuat dan Pra-pemrosesan Data

Bagian ini difokuskan pada pemuatan dan pra-pemrosesan dataset. Kumpulan data yang dipilih untuk tutorial ini adalah kumpulan data OpenFlights Airport yang tersedia di Kaggle. Sejak Januari 2017, OpenFlights Airports Database berisi data untuk lebih dari 10.000 bandara di seluruh dunia

Baca selengkapnya. Bekerja dengan Baris dan Kolom DataFrame dengan Python

Pada kode di bawah ini, kita akan mengimpor modul pandas dan memuat file routes.csv ke dalam program. Sekarang dari semua kolom dalam kumpulan data, kami hanya memerlukan bandara source dan destination dari kumpulan data

import pandas as pd
df = pd.read_csv('routes.csv')
df = df[['Source airport','Destination airport']]
df = df[:500]
df.head()

Untuk membuat pemrosesan lebih mudah dan perhitungannya tidak terlalu rumit, kami hanya akan mengambil 500 baris teratas dari kumpulan data. Dan kami akan menampilkan lima baris pertama dari kumpulan data menggunakan fungsi head

Python membuat grafik jaringan dari kerangka data
OpenFlight Dataset 5 Baris

Kami akan memisahkan node sumber dan tujuan menjadi dua daftar terpisah menggunakan kode Python di bawah ini

sources = list(df['Source airport'])
destinations = list(df['Destination airport'])

Sekarang kita akan beralih ke pembuatan grafik Jaringan menggunakan pustaka networkx dan pyviz di bagian selanjutnya


Pembuatan Graf Jaringan

Kami akan memulai dengan membuat grafik kosong menggunakan fungsi net.Network dan meneruskan sejumlah atribut dari grafik jaringan kosong. Langkah selanjutnya adalah mengulangi daftar

sources = list(df['Source airport'])
destinations = list(df['Destination airport'])
0 dan menambahkan node beserta label dan judulnya

Setelah ini, kita akan menambahkan tepi menggunakan fungsi add_edge. Kami akan menggunakan penanganan pengecualian untuk memastikan semua kesalahan dipertimbangkan (jika ada)

Baca juga. Penanganan Pengecualian Python – Coba, Kecuali, Akhirnya

Lihatlah kode yang disebutkan di bawah ini

g_from_data =net.Network(height='600px',width='50%',
              bgcolor='white',font_color="black",
              heading="A Networkx Graph from DataFrame",directed=True)

for i in range(len(sources)):
  try:
    g_from_data.add_node(sources[i],label=sources[i],title=sources[i])
  except:
    pass

for (i,j) in zip(sources,destinations):
    try:
      g_from_data.add_edge(i,j)
    except:
      pass

g_from_data.show_buttons(['physics'])

g_from_data.show('A_Complete_Networkx_Graph_From_DataFrame.html')
display(HTML('A_Complete_Networkx_Graph_From_DataFrame.html'))

Lihat grafik jaringan yang dihasilkan di bawah ini. Sungguh menakjubkan bagaimana grafik terlihat menarik dan menyenangkan untuk dilihat


Kesimpulan

Saya harap Anda dapat memahami cara membuat grafik jaringan menggunakan bingkai data panda menggunakan pustaka pyviz dalam bahasa pemrograman Python. Terima kasih telah membaca

Bagaimana Anda membuat grafik jaringan dengan Python?

Grafik Jaringan dengan Python .
Dalam contoh ini kami menunjukkan cara memvisualisasikan grafik jaringan yang dibuat menggunakan networkx. .
Buat grafik acak
Buat Tepi. .
Poin Node Warna. .
Buat Grafik Jaringan
Grafik jaringan di Dash

Bagaimana cara membuat grafik jaringan?

Cara membuat diagram jaringan .
Pilih templat diagram jaringan. .
Beri nama diagram jaringan. .
Hapus elemen yang ada yang tidak Anda perlukan pada diagram Anda. .
Tambahkan komponen jaringan ke diagram. .
Beri nama item dalam diagram jaringan Anda. .
Menggambar koneksi antar komponen. .
Tambahkan judul dan bagikan diagram jaringan Anda

Bagaimana Anda memvisualisasikan database sebagai grafik jaringan dengan Python?

Kita akan menggunakan paket networkx untuk membuat grafik, yang memerlukan empat langkah. .
Impor paket. impor networkx sebagai nx
Inisialisasi objek grafik, misalnya. g = nx. Grafik()
Tambahkan node menggunakan g. add_node(node) , di mana node dapat berupa objek hashable apa pun kecuali Tidak ada. .
Tambahkan tepi di antara node kami menggunakan g

Bagaimana Anda memplot grafik dengan Python menggunakan Networkx?

Prasyarat. Menghasilkan Grafik menggunakan Jaringan X, Matplotlib Intro. .
Langkah 1. Impor networkx dan matplotlib. .
Langkah 2. Hasilkan grafik menggunakan networkx. .
Keluaran
Keluaran
Catatan**. Di sini kata kunci dirujuk ke kata kunci opsional yang dapat kami sebutkan digunakan untuk memformat grafik