本文整理汇总了Python中pydot.Edge方法的典型用法代码示例。如果您正苦于以下问题:Python pydot.Edge方法的具体用法?Python pydot.Edge怎么用?Python pydot.Edge使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pydot
的用法示例。
在下文中一共展示了pydot.Edge方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: draw
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def draw(self, name, dname, draw_branches=True):
from pydot import Dot, Edge,Node
g = Dot()
g.set_node_defaults(color='lightgray',
style='filled',
shape='box',
fontname='Courier',
fontsize='10')
if len(self.nodes) == 1:
g.add_node(Node(str(self.nodes[0])))
else:
for node in sorted(self.nodes, key=lambda x: x.num):
for suc in self.sucs(node):
g.add_edge(Edge(str(node), str(suc), color='blue'))
for except_node in self.catch_edges.get(node, []):
g.add_edge(Edge(str(node),
str(except_node),
color='black',
style='dashed'))
g.write_png('%s/%s.png' % (dname, name))
示例2: test_unicode_ids
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def test_unicode_ids(self):
node1 = '"aánñoöüé€"'
node2 = '"îôø®çßΩ"'
g = pydot.Dot()
g.set_charset('latin1')
g.add_node( pydot.Node( node1 ) )
g.add_node( pydot.Node( node2 ) )
g.add_edge( pydot.Edge( node1, node2 ) )
self.assertEqual( g.get_node(node1)[0].get_name(), node1 )
self.assertEqual( g.get_node(node2)[0].get_name(), node2 )
self.assertEqual( g.get_edges()[0].get_source(), node1 )
self.assertEqual( g.get_edges()[0].get_destination(), node2 )
graphs = pydot.graph_from_dot_data(g.to_string())
(g2,) = graphs
self.assertEqual( g2.get_node(node1)[0].get_name(), node1 )
self.assertEqual( g2.get_node(node2)[0].get_name(), node2 )
self.assertEqual( g2.get_edges()[0].get_source(), node1 )
self.assertEqual( g2.get_edges()[0].get_destination(), node2 )
示例3: plot_hierarchy
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def plot_hierarchy(hierarchy, filename, class_names = None):
if isinstance(hierarchy, ClassHierarchy):
hierarchy = hierarchy.children
graph = pydot.Dot(graph_type = 'digraph', rankdir = 'LR')
nodes = {}
for lbl, children in hierarchy.items():
nodes[lbl] = pydot.Node(lbl, label = lbl if class_names is None else class_names[lbl], style = 'filled', fillcolor = '#ffffff' if len(children) == 0 else '#eaeaea')
for child in children:
if child not in hierarchy:
nodes[child] = pydot.Node(child, label = child if class_names is None else class_names[child], style = 'filled', fillcolor = '#ffffff')
for node in nodes.values():
graph.add_node(node)
for parent, children in hierarchy.items():
for child in children:
graph.add_edge(pydot.Edge(nodes[parent], nodes[child]))
graph.write_svg(filename, prog = 'dot')
示例4: draw
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def draw(self, name, dname, draw_branches=True):
from pydot import Dot, Edge
g = Dot()
g.set_node_defaults(color='lightgray', style='filled', shape='box',
fontname='Courier', fontsize='10')
for node in sorted(self.nodes, key=lambda x: x.num):
if draw_branches and node.type.is_cond:
g.add_edge(Edge(str(node), str(node.true), color='green'))
g.add_edge(Edge(str(node), str(node.false), color='red'))
else:
for suc in self.sucs(node):
g.add_edge(Edge(str(node), str(suc), color='blue'))
for except_node in self.catch_edges.get(node, []):
g.add_edge(Edge(str(node), str(except_node),
color='black', style='dashed'))
g.write_png('%s/%s.png' % (dname, name))
示例5: draw
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def draw(self, name, dname, draw_branches=True):
from pydot import Dot, Edge
g = Dot()
g.set_node_defaults(color='lightgray',
style='filled',
shape='box',
fontname='Courier',
fontsize='10')
for node in sorted(self.nodes, key=lambda x: x.num):
if draw_branches and node.type.is_cond:
g.add_edge(Edge(str(node), str(node.true), color='green'))
g.add_edge(Edge(str(node), str(node.false), color='red'))
else:
for suc in self.sucs(node):
g.add_edge(Edge(str(node), str(suc), color='blue'))
for except_node in self.catch_edges.get(node, []):
g.add_edge(Edge(str(node),
str(except_node),
color='black',
style='dashed'))
g.write_png('%s/%s.png' % (dname, name))
示例6: draw
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def draw(self, name, dname, draw_branches=True):
import pydot
g = pydot.Dot()
g.set_node_defaults(**{'color': 'lightgray', 'style': 'filled',
'shape': 'box', 'fontname': 'Courier', 'fontsize': '10'})
for node in sorted(self.nodes, key=lambda x: x.num):
if draw_branches and node.is_cond():
edge_true = pydot.Edge(str(node), str(node.true))
edge_false = pydot.Edge(str(node), str(node.false))
edge_true.set_color('green')
edge_false.set_color('red')
g.add_edge(edge_true)
g.add_edge(edge_false)
else:
succs = self.sucs(node)
for suc in succs:
edge = pydot.Edge(str(node), str(suc))
edge.set_color('blue')
g.add_edge(edge)
g.write_png('%s/%s.png' % (dname, name))
示例7: wr_png
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def wr_png(self, fout_png="Digraph.png", prt=sys.stdout, **kwargs):
"""Make a png showing a diagram of the connected components."""
import pydot
# 1. Create/initialize Graph
G = pydot.Dot(graph_type='digraph') # Undirected Graph
# 2. Create Nodes
nodes = [pydot.Node(v) for v in self.keys]
# 3. Add nodes to Graph
for node in nodes:
G.add_node(node)
# 4. Add Edges between Nodes to Graph
for v, w in self.get_edges():
if v != w: # Print only edges from one node to another (not to self)
G.add_edge(pydot.Edge(v, w))
# 5. Write Graph to png file
G.write_png(fout_png)
prt.write(" WROTE: {}\n".format(fout_png))
示例8: wr_png
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def wr_png(self, fout_png="components.png", prt=sys.stdout, **kwargs):
"""Make a png showing a diagram of the connected components."""
import pydot
label = get_png_label(self.ID, kwargs)
# 1. Create/initialize Graph
G = pydot.Dot(label=label, graph_type='digraph') # Directed Graph
# 2. Create Nodes
nodes = [pydot.Node(str(idx)) for idx in range(len(self.ID))]
# 3. Add nodes to Graph
for node in nodes:
G.add_node(node)
# 4. Add Edges between Nodes to Graph
for child, parent in enumerate(self.ID):
if child != parent: # Print only edges from one node to another (not to self)
G.add_edge(pydot.Edge(nodes[parent], nodes[child]))
# 5. Write Graph to png file
G.write_png(fout_png)
prt.write(" WROTE: {}\n".format(fout_png))
示例9: wr_png_array
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def wr_png_array(bh_st, kwargs):
"""Given an array for a binary heap, draw tree."""
import pydot
prt = sys.stdout if 'prt' not in kwargs else kwargs['prt']
fout_png = "binary_heap_{}.png".format('_'.join(str(e) for e in bh_st))
label = get_png_label(bh_st, kwargs)
# 1. Create/initialize Graph
G = pydot.Dot(label=label, graph_type='digraph') # Directed Graph
edge_idxs = get_edges(bh_st)
badcol = {c:'#fe2f4a' for p, c in edge_idxs if bh_st[p] < bh_st[c]}
# 2. Create Nodes
mknode = lambda i, v: pydot.Node(
"{V}[{I}]".format(I=i+1, V=v),
style = "filled",
fillcolor = badcol.get(i, "beige"))
nodes = [mknode(i,v) for i, v in enumerate(bh_st) if v is not None]
# 3. Add nodes to Graph
for node in nodes:
G.add_node(node)
# 4. Add Edges between Nodes to Graph
for p, c in edge_idxs:
G.add_edge(pydot.Edge(nodes[p], nodes[c]))
# 5. Write Graph to png file
G.write_png(fout_png)
prt.write(" WROTE: {}\n".format(fout_png))
示例10: wr_png
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def wr_png(self, fout_png="Graph.png", prt=sys.stdout, **kwargs):
"""Make a png showing a diagram of the connected components."""
import pydot
# 1. create/initialize graph
g = pydot.Dot(graph_type='graph') # undirected graph
# 2. create nodes
nodes = [pydot.Node(v) for v in self.keys]
# 3. add nodes to graph
for node in nodes:
g.add_node(node)
# 4. add edges between nodes to graph
for v, w in self.get_edges():
if v != w: # print only edges from one node to another (not to self)
g.add_edge(pydot.Edge(v, w))
# 5. write graph to png file
g.write_png(fout_png)
prt.write(" wrote: {}\n".format(fout_png))
示例11: drawNetworkState
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def drawNetworkState(name, servers, amount_of_servers):
"""Save image describinh network of `servers` as `name`."""
if pydot is None:
return
graph = pydot.Dot(graph_type='digraph',
nodesep=0,
ranksep=0,
rankdir="BT")
for servno in range(0, amount_of_servers):
rndnode = Node(hashlib.sha1(str(random.getrandbits(255))).digest())
findNeighbors = servers[servno].dht_server.kserver.protocol.router.findNeighbors
neighbors = map(tuple, findNeighbors(rndnode, k=50))
for neighbor in neighbors:
printPort = servers[servno].dht_server.port.getHost().port
edge = pydot.Edge(str(printPort),
str(neighbor[2]),
label=str(neighbor[0].encode('hex')[-4:]))
graph.add_edge(edge)
graph.write_png(name)
示例12: get_network
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def get_network(self, output):
user_id = self._get_actor()
try:
import pydot
except ImportError:
raise ImportError("You need pydot library to get network functionality.")
graph = pydot.Dot('network_of_user_{}'.format(user_id), graph_type='digraph')
target_node = pydot.Node(user_id)
for _id in self(user_id).following():
user_node = pydot.Node(_id)
graph.add_edge(pydot.Edge(target_node, user_node))
for _id in self(user_id).followers():
user_node = pydot.Node(_id)
graph.add_edge(pydot.Edge(user_node, target_node))
graph.write_png(output)
示例13: __init__
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def __init__(self, src, dst):
"""
Class constructor.
@type src: Mixed
@param src: Edge source
@type dst: Mixed
@param dst: Edge destination
"""
# the unique id for any edge (provided that duplicates are not allowed) is the combination of the source and
# the destination stored as a long long.
self.id = (src << 32) + dst
self.src = src
self.dst = dst
# general graph attributes.
self.color = 0x000000
self.label = ""
# gml relevant attributes.
self.gml_arrow = "none"
self.gml_stipple = 1
self.gml_line_width = 1.0
示例14: render_edge_graphviz
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def render_edge_graphviz(self):
"""
Render an edge suitable for use in a Pydot graph using the set internal attributes.
@rtype: pydot.Edge()
@return: Pydot object representing edge
"""
# no need to validate if nodes exist for src/dst. graphviz takes care of that for us transparently.
dot_edge = pydot.Edge(self.src, self.dst)
if self.label:
dot_edge.label = self.label
dot_edge.color = "#%06x" % self.color
return dot_edge
示例15: model_picture
# 需要导入模块: import pydot [as 别名]
# 或者: from pydot import Edge [as 别名]
def model_picture(model, to_file='local/model.png'):
graph = pydot.Dot(graph_type='digraph')
if isinstance(model,Sequential):
previous_node = None
written_nodes = []
n = 1
for node in model.get_config()['layers']:
# append number in case layers have same name to differentiate
if (node['name'] + str(n)) in written_nodes:
n += 1
current_node = pydot.Node(node['name'] + str(n))
written_nodes.append(node['name'] + str(n))
graph.add_node(current_node)
if previous_node:
graph.add_edge(pydot.Edge(previous_node, current_node))
previous_node = current_node
graph.write_png(to_file)
elif isinstance(model,Graph):
# don't need to append number for names since all nodes labeled
for input_node in model.input_config:
graph.add_node(pydot.Node(input_node['name']))
# intermediate and output nodes have input defined
for layer_config in [model.node_config, model.output_config]:
for node in layer_config:
graph.add_node(pydot.Node(node['name']))
# possible to have multiple 'inputs' vs 1 'input'
if node['inputs']:
for e in node['inputs']:
graph.add_edge(pydot.Edge(e, node['name']))
else:
graph.add_edge(pydot.Edge(node['input'], node['name']))
graph.write_png(to_file)