Skip to the content.

Verkostojen visualisoimiseen käytetty Python-koodi

Alla oleva Python-koodi ei toimi ilman kolmen siinä käytetyn moduulin eli ohjelmistokirjaston asentamista. Tämä tapahtuu terminaalikomennolla pip install matplotlib pandas networkx. Jos asennusta ei ole tehty oikein, Python-tulkki antaa virheilmoituksen ModuleNotFoundError.

# -*- coding: utf-8 -*-

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

if __name__ == '__main__':
    data = pd.read_csv("verkosto.csv")
    G = nx.from_pandas_edgelist(data, "lahto", "tulo")
    centrality = nx.degree_centrality(G)
    eigen_centrality = nx.eigenvector_centrality(G)
    closeness = nx.closeness_centrality(G)
    betweenness_centrality = nx.betweenness_centrality(G)
    results = pd.DataFrame({
        "keskeisyys": centrality,
        "ominaisvektorikeskeisyys": eigen_centrality, 
        "läheisyyskeskeisyys": closeness, 
        "välillisyyskeskeisyys": betweenness_centrality,
        })
    results.to_csv("keskeisyys.csv")
    maksimit = {c: results[c].idxmax() for c in results.columns}
    print(maksimit)
    print(f"keskus: {nx.center(G)}")
    print(f"periferia: {nx.periphery(G)}")
    print(f"tiheys: {nx.density(G):.2f}")
    print(f"tärkein klikki: {nx.max_weight_clique(G, weight=None)} (Huom! Näitä voi olla useita)")
    nx.draw_networkx(G, with_labels=True)
    plt.show()

Lataa