Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _make_vgraph_dataset(self, edges, nodes, name):
from . import vgraph
(elist, nlist, encodings) = self._bind_attributes_v2(edges, nodes)
nodeid = self._node or Plotter._defaultNodeId
sources = elist[self._source]
dests = elist[self._destination]
elist.drop([self._source, self._destination], axis=1, inplace=True)
# Filter out nodes which have no edges
lnodes = pandas.concat([sources, dests], ignore_index=True).unique()
lnodes_df = pandas.DataFrame(lnodes, columns=[nodeid])
filtered_nlist = pandas.merge(lnodes_df, nlist, on=nodeid, how='left')
# Create a map from nodeId to a continuous range of integer [0, #nodes-1].
# The vgraph protobuf format uses the continous integer ranger as internal nodeIds.
node_map = dict([(v, i) for i, v in enumerate(lnodes.tolist())])
dataset = vgraph.create(elist, filtered_nlist, sources, dests, nodeid, node_map, name)
dataset['encodings'] = encodings
(es2, vs2) = g.igraph2pandas(ig)
g.nodes(vs2).bind(point_color='community').plot()
"""
def get_edgelist(ig):
idmap = dict(enumerate(ig.vs[self._node]))
for e in ig.es:
t = e.tuple
yield dict({self._source: idmap[t[0]], self._destination: idmap[t[1]]},
**e.attributes())
self._check_mandatory_bindings(False)
if self._node is None:
ig.vs[Plotter._defaultNodeId] = [v.index for v in ig.vs]
self._node = Plotter._defaultNodeId
elif self._node not in ig.vs.attributes():
util.error('Vertex attribute "%s" bound to "node" does not exist.' % self._node)
edata = get_edgelist(ig)
ndata = [v.attributes() for v in ig.vs]
nodes = pandas.DataFrame(ndata, columns=ig.vs.attributes())
cols = [self._source, self._destination] + ig.es.attributes()
edges = pandas.DataFrame(edata, columns=cols)
return (edges, nodes)