Esempio n. 1
0
	def test_d3_json1(self):
		G_json=d3_js.d3_json(self.G)
		G_nodes=map(lambda v: int(v['name']), G_json['nodes'])
		G_nodes.sort()
		self.assertEquals(G_nodes, range(6))
		G_group=map(lambda v: int(v['group']), G_json['nodes'])
		self.assertTrue(all(g == 0 for g in G_group))
		G_edges=map(lambda e: (e['source'], e['target'], e['value']), G_json['links'])
		G_edges.sort()
		self.assertEquals(G_edges, [(a,b,1) for (a,b) in self.e])
Esempio n. 2
0
	def test_d3_json2(self):
		H_json=d3_js.d3_json(self.H, group='group')
		self.assertRaises(nx.NetworkXError, d3_js.d3_json, self.H, 'fake')
		H_nodes=map(lambda v: int(v['name']), H_json['nodes'])
		H_nodes.sort()
		self.assertEquals(H_nodes, range(6))
		H_group=map(lambda v: int(v['group']), H_json['nodes'])
		self.assertEquals(H_group, range(6))
		H_edges=map(lambda e: (e['source'], e['target'], e['value']), H_json['links'])
		H_edges.sort()
		self.assertEquals(H_edges, map(lambda i: (self.e[i][0], self.e[i][1], self.attributes[i]), xrange(6)))
Esempio n. 3
0
 def test_d3_json1(self):
     G_json = d3_js.d3_json(self.G)
     G_nodes = map(lambda v: int(v['name']), G_json['nodes'])
     G_nodes.sort()
     self.assertEquals(G_nodes, range(6))
     G_group = map(lambda v: int(v['group']), G_json['nodes'])
     self.assertTrue(all(g == 0 for g in G_group))
     G_edges = map(lambda e: (e['source'], e['target'], e['value']),
                   G_json['links'])
     G_edges.sort()
     self.assertEquals(G_edges, [(a, b, 1) for (a, b) in self.e])
Esempio n. 4
0
 def test_d3_json2(self):
     H_json = d3_js.d3_json(self.H, group='group')
     self.assertRaises(nx.NetworkXError, d3_js.d3_json, self.H, 'fake')
     H_nodes = map(lambda v: int(v['name']), H_json['nodes'])
     H_nodes.sort()
     self.assertEquals(H_nodes, range(6))
     H_group = map(lambda v: int(v['group']), H_json['nodes'])
     self.assertEquals(H_group, range(6))
     H_edges = map(lambda e: (e['source'], e['target'], e['value']),
                   H_json['links'])
     H_edges.sort()
     self.assertEquals(
         H_edges,
         map(lambda i: (self.e[i][0], self.e[i][1], self.attributes[i]),
             xrange(6)))
Esempio n. 5
0
     def grapher(self):
             print "results length : %s",(len(self.searcher.generator.results), )
             
             grapher = Grapher()
 
             newg = nx.Graph()
             for path in self.searcher.useful_paths:
                 print '%s - %s' % (self.uuid,path)
                 newg.add_path(path)
                 grapher.paths.append(path)
             
             
             grapher.graph = newg
             #writer = nx.readwrite.graphml.GraphMLWriter(encoding='utf-8')
             #writer.add_graph_element(grapher.graph)
             #output = StringIO.StringIO()
             #writer.dump(self.request)
             
             from networkx.readwrite import d3_js
             
             # mikedewar = nx.read_graphml('mikedewar_rec.graphml')
             mikedewar = newg
             
             # We need to relabel nodes as Twitter name if we want to show the names in the plot
             #def gen_label(node):
             #    label = ""
             #    label = "%s::%s::%s::%d" %(node.path_index,node.publication_date.absdate,node.id,node.hasMatchingAuthorsName(self.searcher.core_authors()))
             #    print label
             #    return label
                 
             #label_dict = dict(map(lambda i : (mikedewar.nodes()[i], gen_label(mikedewar.nodes()[i])), xrange(mikedewar.number_of_nodes())))
             #mikedewar_d3 = nx.relabel_nodes(mikedewar, label_dict)    
             
             # Export 
             #d3_js.export_d3_js(mikedewar_d3, files_dir="mikedewar", graphname="mikedewar", group=None)                
             graph_json = d3_js.d3_json(mikedewar, group=None, searcher=self.searcher)
             
             import json
             #self.request.write(json.dumps(graph_json, indent=2))
             params = self.params
             params['network_graph'] = json.dumps(graph_json, indent=2)
             self.updateDatabase(params)