import networkx as nx
import pandas as pd
from bokeh.io import show, output_notebook
from bokeh.plotting import figure
from bokeh.models import Circle, HoverTool, TapTool, BoxSelectTool
from bokeh.models.graphs import from_networkx
output_notebook()
edges = pd.read_csv('gephi_edges.csv')
edges = edges.dropna()
edges['target'] = edges['target'].astype('int')
edges['week_read'] = edges['week_read'].astype('int')
print(edges.head())
G = nx.from_pandas_edgelist(edges, source='source', target='target')
source target semester week_read 0 324 342 Fall 2021 15 1 347 320 Fall 2021 15 2 342 339 Fall 2021 15 3 346 339 Fall 2021 15 4 329 337 Fall 2021 15
edges[edges.isna().any(axis=1)]
source | target | semester | week_read |
---|
plot = figure(x_range=(-1.1, 1.1), y_range=(-1, 1))
graph = from_networkx(G, nx.spring_layout, iterations=1000, scale=1, center=(0, 0))
BokehDeprecationWarning: Importing from_networkx from bokeh.models.graphs is deprecated and will be removed in Bokeh 3.0. Import from bokeh.plotting instead
graph.node_renderer.data_source.data['source'] = list(G.nodes())
G = nx.karate_club_graph()
print(G.edges)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) c:\Users\KSpicer\Documents\GitHub\solo_projects\weird_fiction_visualizations\bokeh_categorization_test.ipynb Cell 6 in <cell line: 2>() <a href='vscode-notebook-cell:/c%3A/Users/KSpicer/Documents/GitHub/solo_projects/weird_fiction_visualizations/bokeh_categorization_test.ipynb#ch0000007?line=0'>1</a> G = nx.karate_club_graph() ----> <a href='vscode-notebook-cell:/c%3A/Users/KSpicer/Documents/GitHub/solo_projects/weird_fiction_visualizations/bokeh_categorization_test.ipynb#ch0000007?line=1'>2</a> print(G.edges[0]) File c:\Users\KSpicer\Anaconda3\envs\victorian_authorship_env\lib\site-packages\networkx\classes\reportviews.py:929, in OutEdgeView.__getitem__(self, e) 928 def __getitem__(self, e): --> 929 u, v = e 930 return self._adjdict[u][v] TypeError: cannot unpack non-iterable int object
graph.node_renderer.data_source.data['semester'] = [i[1]['color'] for i in G.nodes(data=True)]