Exemple #1
0
    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