def visualize_graph(self): """ Generates visualization using Pyviz, a wrapper around visJS. The visualization can be found at datanet.html """ from pyvis.network import Network # type: ignore (PyLance) print("Generating visualizations...") data_net = Network(height='100%', width='100%', bgcolor='#222222', font_color='white') sources = self.df_edges["series_y"] targets = self.df_edges["series_x"] name_src = self.df_edges["modality_y"] name_tar = self.df_edges["modality_x"] patient_id = self.df_edges["patient_ID_x"] reference_ct = self.df_edges["reference_ct_y"] reference_rs = self.df_edges["reference_rs_y"] data_zip = zip(sources, targets, name_src, name_tar, patient_id, reference_ct, reference_rs) for i in data_zip: data_net.add_node(i[0], i[2], title=i[2], group=i[4]) data_net.add_node(i[1], i[3], title=i[3], group=i[4]) data_net.add_edge(i[0], i[1]) node = data_net.get_node(i[0]) node[ "title"] = "<br>Patient_id: {}<br>Series: {}<br>reference_ct: {}<br>reference_rs: {}".format( i[4], i[0], i[5], i[6]) node = data_net.get_node(i[1]) node[ "title"] = "<br>Patient_id: {}<br>Series: {}<br>reference_ct: {}<br>reference_rs: {}".format( i[4], i[1], i[5], i[6]) neigbour_map = data_net.get_adj_list() for node in data_net.nodes: node["title"] += "<br>Number of connections: {}".format( len(neigbour_map[node['id']])) node["value"] = len(neigbour_map[node['id']]) vis_path = pathlib.Path(os.path.dirname(self.edge_path), "datanet.html").as_posix() data_net.show(vis_path)
def visualize_graph(graph): Artist_Network = Network(height='100%',width='100%') for artist in graph: #print('Adding Top Artist: ', artist) try: Artist_Network.get_node(artist) except: print('Adding Top Artist: ', artist) title = "{}, User's Top Artist, Genre: {}".format(artist, graph[artist]['genre']) Artist_Network.add_node(artist, label = artist, group = graph[artist]['genre'], shape = 'circularImage', image = graph[artist]['image'], borderWidth = 3, size = int(graph[artist]['popularity'])/2, labelHighlightBold = True, title = title, physics = True) #value = int(graph[artist]['followers']), for related in graph[artist]['related']: try: #print('Adding Related Artist: ', artist) Artist_Network.get_node(related) except: print('Adding Related Artist: ', related) title = "{}, Genre: {}".format(related, graph[artist]['genre']) Artist_Network.add_node(related, label = related, group = graph[related]['genre'], shape = 'circularImage', image = graph[related]['image'], borderWidth = 1.5, size = int(graph[artist]['popularity'])/2, title = title, physics = True) # value = int(graph[related]['followers']), Artist_Network.add_edge(artist,related, physics = True) print('Outputting Graph...') Artist_Network.show('example.html') return Artist_Network