locust's picture
Create new file
fac79a2
raw
history blame
No virus
2.14 kB
import networkx as nx
import matplotlib.pyplot as plt
from pyvis.network import Network
import pandas as pd
import streamlit as st
def got_func(physics):
got_net = Network(height="600px", width="100%", font_color="black",heading='Game of Thrones Graph')
# set the physics layout of the network
got_net.barnes_hut()
got_data = pd.read_csv("stormofswords.csv")
#got_data = pd.read_csv("stormofswords.csv")
#got_data.rename(index={0: "Source", 1: "Target", 2: "Weight"})
sources = got_data['Source']
targets = got_data['Target']
weights = got_data['Weight']
edge_data = zip(sources, targets, weights)
for e in edge_data:
src = e[0]
dst = e[1]
w = e[2]
got_net.add_node(src, src, title=src)
got_net.add_node(dst, dst, title=dst)
got_net.add_edge(src, dst, value=w)
neighbor_map = got_net.get_adj_list()
# add neighbor data to node hover data
for node in got_net.nodes:
node["title"] += " Neighbors:<br>" + "<br>".join(neighbor_map[node["id"]])
node["value"] = len(neighbor_map[node["id"]])
if physics:
got_net.show_buttons(filter_=['physics'])
got_net.show("gameofthrones.html")
def simple_func(physics):
nx_graph = nx.cycle_graph(10)
nx_graph.nodes[1]['title'] = 'Number 1'
nx_graph.nodes[1]['group'] = 1
nx_graph.nodes[3]['title'] = 'I belong to a different group!'
nx_graph.nodes[3]['group'] = 10
nx_graph.add_node(20, size=20, title='couple', group=2)
nx_graph.add_node(21, size=15, title='couple', group=2)
nx_graph.add_edge(20, 21, weight=5)
nx_graph.add_node(25, size=25, label='lonely', title='lonely node', group=3)
nt = Network("500px", "500px",notebook=True,heading='')
nt.from_nx(nx_graph)
#physics=st.sidebar.checkbox('add physics interactivity?')
if physics:
nt.show_buttons(filter_=['physics'])
nt.show('test.html')
def karate_func(physics):
G = nx.karate_club_graph()
nt = Network("500px", "500px",notebook=True,heading='Zachary’s Karate Club graph')
nt.from_nx(G)
#physics=st.sidebar.checkbox('add physics interactivity?')
if physics:
nt.show_buttons(filter_=['physics'])
nt.show('karate.html')