@@ -512,71 +512,69 @@ def dendrogram(D, figargs=None):
512512 '''
513513 if figargs is None :
514514 return lambda figargs : dendrogram (D , figargs = figargs )
515+ G = nx .Graph ()
516+
517+ vertices_source = ColumnDataSource (
518+ pd .DataFrame ({'index' : D .columns .keys (),
519+ 'desc' : list (D .columns .values ())}))
520+ edges_source = ColumnDataSource (
521+ pd .DataFrame (D .edges [0 ]).rename (
522+ columns = {1 : 'end' , 0 : 'start' }))
523+ step_source = ColumnDataSource (
524+ pd .DataFrame ({'step' : [0 ],
525+ 'thresh' : [D .threshlist [0 ]],
526+ 'components' : [len (D .graphs [0 ])]}))
527+
528+ G .add_nodes_from ([str (x ) for x in vertices_source .data ['index' ]])
529+ G .add_edges_from (zip (
530+ [str (x ) for x in edges_source .data ['start' ]],
531+ [str (x ) for x in edges_source .data ['end' ]]))
532+
533+ graph_renderer = from_networkx (G , nx .circular_layout ,
534+ scale = 1 , center = (0 , 0 ))
535+
536+ graph_renderer .node_renderer .data_source = vertices_source
537+ graph_renderer .node_renderer .view = CDSView (source = vertices_source )
538+ graph_renderer .edge_renderer .data_source = edges_source
539+ graph_renderer .edge_renderer .view = CDSView (source = edges_source )
540+
541+ plot = Plot (plot_width = 400 , plot_height = 400 ,
542+ x_range = Range1d (- 1.1 , 1.1 ),
543+ y_range = Range1d (- 1.1 , 1.1 ))
544+ plot .title .text = "Feature Connectivity"
545+ graph_renderer .node_renderer .glyph = Circle (
546+ size = 5 , fill_color = Spectral4 [0 ])
547+ graph_renderer .node_renderer .selection_glyph = Circle (
548+ size = 15 , fill_color = Spectral4 [2 ])
549+ graph_renderer .edge_renderer .data_source = edges_source
550+ graph_renderer .edge_renderer .glyph = MultiLine (line_color = "#CCCCCC" ,
551+ line_alpha = 0.6 ,
552+ line_width = .5 )
553+ graph_renderer .edge_renderer .selection_glyph = MultiLine (
554+ line_color = Spectral4 [2 ],
555+ line_width = 3 )
556+ graph_renderer .node_renderer .hover_glyph = Circle (
557+ size = 5 ,
558+ fill_color = Spectral4 [1 ])
559+ graph_renderer .selection_policy = NodesAndLinkedEdges ()
560+ graph_renderer .inspection_policy = NodesAndLinkedEdges ()
561+
562+ plot .renderers .append (graph_renderer )
563+
564+ plot .add_tools (
565+ HoverTool (tooltips = [("feature" , "@desc" ),
566+ ("index" , "@index" ), ]),
567+ TapTool (),
568+ BoxZoomTool (),
569+ SaveTool (),
570+ ResetTool ())
515571
516- def modify_doc (doc , D , figargs ):
517- G = nx .Graph ()
518-
519- vertices_source = ColumnDataSource (
520- pd .DataFrame ({'index' : D .columns .keys (),
521- 'desc' : D .columns .values ()}))
522- edges_source = ColumnDataSource (
523- pd .DataFrame (D .edges [0 ]).rename (
524- columns = {1 : 'end' , 0 : 'start' }))
525- step_source = ColumnDataSource (
526- pd .DataFrame ({'step' : [0 ],
527- 'thresh' : [D .threshlist [0 ]],
528- 'components' : [len (D .graphs [0 ])]}))
529-
530- G .add_nodes_from (vertices_source .data ['index' ])
531- G .add_edges_from (zip (
532- edges_source .data ['start' ],
533- edges_source .data ['end' ]))
534-
535- graph_renderer = from_networkx (G , nx .circular_layout ,
536- scale = 1 , center = (0 , 0 ))
537-
538- graph_renderer .node_renderer .data_source = vertices_source
539- graph_renderer .node_renderer .view = CDSView (source = vertices_source )
540- graph_renderer .edge_renderer .data_source = edges_source
541- graph_renderer .edge_renderer .view = CDSView (source = edges_source )
542-
543- plot = Plot (plot_width = 400 , plot_height = 400 ,
544- x_range = Range1d (- 1.1 , 1.1 ),
545- y_range = Range1d (- 1.1 , 1.1 ))
546- plot .title .text = "Feature Connectivity"
547-
548- graph_renderer .node_renderer .glyph = Circle (
549- size = 5 , fill_color = Spectral4 [0 ])
550- graph_renderer .node_renderer .selection_glyph = Circle (
551- size = 15 , fill_color = Spectral4 [2 ])
552-
553- graph_renderer .edge_renderer .data_source = edges_source
554- graph_renderer .edge_renderer .glyph = MultiLine (line_color = "#CCCCCC" ,
555- line_alpha = 0.6 ,
556- line_width = .5 )
557- graph_renderer .edge_renderer .selection_glyph = MultiLine (
558- line_color = Spectral4 [2 ],
559- line_width = 3 )
560-
561- graph_renderer .node_renderer .hover_glyph = Circle (
562- size = 5 ,
563- fill_color = Spectral4 [1 ])
564-
565- graph_renderer .selection_policy = NodesAndLinkedEdges ()
566- graph_renderer .inspection_policy = NodesAndLinkedEdges ()
567-
568- plot .renderers .append (graph_renderer )
569-
570- plot .add_tools (
571- HoverTool (tooltips = [("feature" , "@desc" ),
572- ("index" , "@index" ), ]),
573- TapTool (),
574- BoxZoomTool (),
575- SaveTool (),
576- ResetTool ())
577-
578- plot = _modify_plot (plot , figargs )
572+ plot = _modify_plot (plot , figargs )
573+
574+ if figargs ['static' ]:
575+ return plot
579576
577+ def modify_doc (doc , D , figargs ):
580578 data_table = DataTable (source = step_source ,
581579 columns = [TableColumn (field = 'step' ,
582580 title = 'Step' ),
@@ -600,7 +598,7 @@ def callback(attr, old, new):
600598 print (e )
601599
602600 slider = Slider (start = 0 ,
603- end = len (D .edges ),
601+ end = ( len (D .edges ) - 1 ),
604602 value = 0 ,
605603 step = 1 ,
606604 title = "Step" )
0 commit comments