当前位置: 首页>>代码示例>>Python>>正文


Python graphviz.Graph方法代码示例

本文整理汇总了Python中graphviz.Graph方法的典型用法代码示例。如果您正苦于以下问题:Python graphviz.Graph方法的具体用法?Python graphviz.Graph怎么用?Python graphviz.Graph使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在graphviz的用法示例。


在下文中一共展示了graphviz.Graph方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: bipartite_as_graph

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def bipartite_as_graph(self) -> Graph:  # pragma: no cover
        """Returns a :class:`graphviz.Graph` representation of this bipartite graph."""
        if Graph is None:
            raise ImportError('The graphviz package is required to draw the graph.')
        graph = Graph()
        nodes_left = {}  # type: Dict[TLeft, str]
        nodes_right = {}  # type: Dict[TRight, str]
        node_id = 0
        for (left, right), value in self.bipartite._edges.items():
            if left not in nodes_left:
                name = 'node{:d}'.format(node_id)
                nodes_left[left] = name
                label = str(self.subjects_by_id[left])
                graph.node(name, label=label)
                node_id += 1
            if right not in nodes_right:
                name = 'node{:d}'.format(node_id)
                nodes_right[right] = name
                label = str(self.automaton.patterns[right][0])
                graph.node(name, label=label)
                node_id += 1
            edge_label = value is not True and str(value) or ''
            graph.edge(nodes_left[left], nodes_right[right], edge_label)
        return graph 
开发者ID:HPAC,项目名称:matchpy,代码行数:26,代码来源:many_to_one.py

示例2: as_graph

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def as_graph(self) -> Graph:  # pragma: no cover
        """Returns a :class:`graphviz.Graph` representation of this bipartite graph."""
        if Graph is None:
            raise ImportError('The graphviz package is required to draw the graph.')
        graph = Graph()
        nodes_left = {}  # type: Dict[TLeft, str]
        nodes_right = {}  # type: Dict[TRight, str]
        node_id = 0
        for (left, right), value in self._edges.items():
            if left not in nodes_left:
                name = 'node{:d}'.format(node_id)
                nodes_left[left] = name
                graph.node(name, label=str(left))
                node_id += 1
            if right not in nodes_right:
                name = 'node{:d}'.format(node_id)
                nodes_right[right] = name
                graph.node(name, label=str(right))
                node_id += 1
            edge_label = value is not True and str(value) or ''
            graph.edge(nodes_left[left], nodes_right[right], edge_label)
        return graph 
开发者ID:HPAC,项目名称:matchpy,代码行数:24,代码来源:bipartite.py

示例3: gen_graph_from_nodes

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def gen_graph_from_nodes(nodes, type_fail=None):
    graph = Graph(format='png', strict=True)
    graph.node_attr['fontname'] = 'Courier New'
    graph.edge_attr['fontname'] = 'Courier New'
    for node in nodes:
        graph.node(_type_str(node.type),
                   '{type: %s|ast_node: %s|parent\'s type: %s}' %
                   (_type_str(node.type),
                    node.ast_node.as_string().replace('<', '\\<').replace('>', '\\>')
                        if node.ast_node else 'None',
                    _type_str(node.parent.type) if node.parent else 'NA'),
                   shape='record', style='rounded')
        for neighb, ctx_node in node.adj_list:
            graph.edge(_type_str(node.type), _type_str(neighb.type),
                       label=(f' {ctx_node.as_string()}' if ctx_node else ''))
    if type_fail:
        graph.node('tf',
                   '{TypeFail|src_node: %s}' %
                   (type_fail.src_node.as_string().replace('<', '\\<').replace('>', '\\>')
                        if type_fail.src_node else 'None'), shape='record')
        graph.edge('tf', _type_str(type_fail.tnode1.type), style='dashed')
        graph.edge('tf', _type_str(type_fail.tnode2.type), style='dashed')
    graph.view('tnode_graph') 
开发者ID:pyta-uoft,项目名称:pyta,代码行数:25,代码来源:draw_tnodes.py

示例4: concrete_bipartite_as_graph

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def concrete_bipartite_as_graph(self, subjects, patterns) -> Graph:  # pragma: no cover
        """Returns a :class:`graphviz.Graph` representation of this bipartite graph."""
        if Graph is None:
            raise ImportError('The graphviz package is required to draw the graph.')
        bipartite = self._build_bipartite(subjects, patterns)
        graph = Graph()
        nodes_left = {}  # type: Dict[TLeft, str]
        nodes_right = {}  # type: Dict[TRight, str]
        node_id = 0
        for (left, right), value in bipartite._edges.items():
            if left not in nodes_left:
                subject_id, i = left
                name = 'node{:d}'.format(node_id)
                nodes_left[left] = name
                label = '{}, {}'.format(i, self.subjects_by_id[subject_id])
                graph.node(name, label=label)
                node_id += 1
            if right not in nodes_right:
                pattern, i = right
                name = 'node{:d}'.format(node_id)
                nodes_right[right] = name
                label = '{}, {}'.format(i, self.automaton.patterns[pattern][0])
                graph.node(name, label=label)
                node_id += 1
            edge_label = value is not True and str(value) or ''
            graph.edge(nodes_left[left], nodes_right[right], edge_label)
        return graph 
开发者ID:HPAC,项目名称:matchpy,代码行数:29,代码来源:many_to_one.py

示例5: __init__

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def __init__(self, id, vizformat='svg'):
        self.id = id
        # Config
        # self.base_path = "./"
        self.base_path = os.path.join(os.path.dirname(__file__), '')
        
        self.dep_dir = "data/dependencies/"
        self.out_dir = ""
        self.log_dir = "./"
        # graphviz image format
        self.vizformat = vizformat
        self.width = 2.5
        self.height = 2.5
        self.graph = functools.partial(gv.Graph, format=self.vizformat)
        self.digraph = functools.partial(gv.Digraph, format=self.vizformat)

        # Change these for a given run
        self.input_path = self.base_path + self.dep_dir
        self.output_path = self.base_path + self.out_dir

        # load graph
        self.dep_dict = self._load_graph_from_dependency_files()

        # load other 
        self.resolved = []
        self.nodes = []
        self.edges = []

        # resolve precursors
        self.precursor_list(self.dep_dict, self.id, self.nodes)
        self.precursor_controls = self.nodes 
开发者ID:GovReady,项目名称:compliancelib-python,代码行数:33,代码来源:nist800_53viz.py

示例6: test_sanity_check

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def test_sanity_check():
  a = Node(np.eye(2), backend="tensorflow")
  b = Node(np.eye(2), backend="tensorflow")
  connect(a[0], b[0])
  g = to_graphviz([a, b])
  #pylint: disable=no-member
  assert isinstance(g, graphviz.Graph) 
开发者ID:google,项目名称:TensorNetwork,代码行数:9,代码来源:graphviz_test.py

示例7: export_expression_tree

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def export_expression_tree(genome, label_renaming_map=None, file='tree.png'):
    """
    Construct the graph of a *genome* and then export it to a *file*.

    :param genome: :class:`~geppy.core.entity.KExpression`, :class:`~geppy.core.entity.Gene`, or
        :class:`~geppy.core.entity.Chromosome`, the genotype of an individual
    :param label_renaming_map: dict, which maps the old name of a primitive (or a linking function)
        to a new one for better visualization. The default label for each node is just the name of the primitive
        placed on this node. For example, you may provide ``renamed_labels={'and_': 'and'}``.
    :param file: str, the file path to draw the expression tree, which may be a relative or absolute one.
        If no extension is included in *file*, then the default extension 'png' is used.

    .. note::
        This function currently depends on the :mod:`graphviz` module to render the tree. Please first install the
        `graphviz <https://pypi.org/project/graphviz/>`_ module before using this function.
        Alternatively, you can always obtain the raw graph data with the :func:`graph` function, then postprocess the
        data and render them with other tools as you want.
    """
    import graphviz as gv
    import os.path

    nodes, edges, labels = graph(genome, label_renaming_map)
    file_name, ext = os.path.splitext(file)
    ext = ext.lstrip('.')
    g = gv.Graph(format=ext)
    for name, label in labels.items():
        g.node(str(name), str(label))  # add node
    for name1, name2 in edges:
        g.edge(str(name1), str(name2))  # add edge
    g.render(file_name) 
开发者ID:ShuhuaGao,项目名称:geppy,代码行数:32,代码来源:visualization.py

示例8: convert_networkx_graph_to_graphiz

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def convert_networkx_graph_to_graphiz(graph, directed=False):
    """
    Convert a networkx Multigraph to a graphviz.dot.Graph
    This allows us to modify the graphviz graph programmatically in Python before we dump to dot format and plot.
    Note the Graphviz plot is created sequentially... It is hard to edit it after the edges and node attrs are written.

    Args:
        graph (networkx graph): networkx graph to be converted to dot notation
        directed (boolean): is `graph` directed... more specifically, do we want the returned graph to be directed?

    Returns:
        graphviz.dot.Graph: conversion of `graph` to a graphviz dot object.
    """
    if directed:
        G = gv.Digraph()
    else:
        G = gv.Graph()

    # add nodes and their attributes to graphviz object
    for n in graph.nodes():
        n_attr = {k: str(v) for k, v in graph.node[n].items()}
        G.attr('node', n_attr)
        G.node(str(n), str(n))

    # add edges and their attributes to graphviz object
    for e in graph.edges(keys=True):
        e_attr = {k: str(v) for k, v in graph[e[0]][e[1]][e[2]].items()}
        G.edge(str(e[0]), str(e[1]), **e_attr)

    return G 
开发者ID:brooksandrew,项目名称:postman_problems,代码行数:32,代码来源:viz.py

示例9: plot_circuit_graphviz

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def plot_circuit_graphviz(circuit, graph, filename=None, format='svg', engine='dot', edge_label_attr=None,
                          graph_attr={'strict': 'false', 'forcelabels': 'true'}, node_attr=None, edge_attr=None):
    """
    Builds single graphviz graph with CPP solution.
    Wrapper around functions:
        - circuit specific formatter: prepare_networkx_graph_circuit_for_transformation_to_graphviz
        - general purpose plotter: plot_graphviz

    Args:
        circuit (list[tuple]): solution of the CPP (result from graph.cpp function
        graph (networkx graph): original graph augmented with ``
        filename (str): filename of viz output (leave off the file extension... this is appended from `format`)
        format (str): 'svg', 'png`, etc
        engine (str) : which graphviz engine to use: 'dot', 'neato'. 'circo', etc
        edge_label_attr (str) optional name of graph edge attribute to use for label. Default None uses index from circuit.
        graph_attr (dict): of graphviz graph level attributes.
        node_attr (dict): of graphviz node attributes to pass to each node
        edge_attr (dict): of graphviz edge attributes to pass to each edge.

    Returns:
        graphviz.Graph or graphviz.DirectedGraph with enriched route and plotting data.
        Writes a visualization to disk if filename is provided.
    """

    graph_gv = prepare_networkx_graph_circuit_for_transformation_to_graphviz(circuit, graph, edge_label_attr)
    return plot_graphviz(graph_gv, filename, format, engine, edge_label_attr, graph_attr, node_attr, edge_attr) 
开发者ID:brooksandrew,项目名称:postman_problems,代码行数:28,代码来源:viz.py

示例10: to_graphviz

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def to_graphviz(nodes: Iterable[AbstractNode],
                graph: Optional[graphviz.Graph] = None,
                include_all_names: bool = False,
                engine: Text = "neato") -> graphviz.Graph:
  """Create a graphviz Graph that is isomorphic to the given TensorNetwork.

  Args:
    nodes: a collection of nodes
    graph: An optional `graphviz.Graph` object to write to. Use this only
      if you wish to set custom attributes for the graph.
    include_all_names: Whether to include all of the names in the graph.
      If False, all names starting with '__' (which are almost always just
      the default generated names) will be dropped to reduce clutter.
    engine: The graphviz engine to use. Only applicable if `graph` is None.

  Returns:
    The `graphviz.Graph` object.
  """
  if graph is None:
    #pylint: disable=no-member
    graph = graphviz.Graph('G', engine=engine)
  for node in nodes:
    if not node.name.startswith("__") or include_all_names:
      label = node.name
    else:
      label = ""
    graph.node(str(id(node)), label=label)
  seen_edges = set()
  for node in nodes:
    for i, edge in enumerate(node.edges):
      if edge in seen_edges:
        continue
      seen_edges.add(edge)
      if not edge.name.startswith("__") or include_all_names:
        edge_label = edge.name
      else:
        edge_label = ""
      if edge.is_dangling():
        # We need to create an invisible node for the dangling edge
        # to connect to.
        graph.node(
            "{}_{}".format(id(node), i),
            label="",
            _attributes={"style": "invis"})
        graph.edge("{}_{}".format(id(node), i), str(id(node)), label=edge_label)
      else:
        graph.edge(str(id(edge.node1)), str(id(edge.node2)), label=edge_label)
  return graph 
开发者ID:google,项目名称:TensorNetwork,代码行数:50,代码来源:graphviz.py

示例11: plot_graphviz

# 需要导入模块: import graphviz [as 别名]
# 或者: from graphviz import Graph [as 别名]
def plot_graphviz(graph, filename=None, format='svg', engine='dot', edge_label_attr=None,
                  graph_attr={'strict': 'false', 'forcelabels': 'true'}, node_attr=None, edge_attr=None):
    """
    Creates a dot (graphviz) representation of a networkx graph and saves a visualization.

    Args:
        graph (networkx graph): original graph augmented with ``
        filename (str): filename of viz output (leave off the file extension... this is appended from `format`)
        format (str): 'svg', 'png`, etc
        engine (str) : which graphviz engine to use: 'dot', 'neato'. 'circo', etc
        edge_label_attr (str) optional name of graph edge attribute to use for label. Default None uses index from circuit.
        graph_attr (dict): of graphviz graph level attributes.
        node_attr (dict): of graphviz node attributes to pass to each node
        edge_attr (dict): of graphviz edge attributes to pass to each edge.

    Returns:
        graphviz.Graph or graphviz.DirectedGraph with
        Writes a visualization to disk if filename is provided.
    """

    if edge_label_attr:
        for i, e in enumerate(graph.edges(data=True, keys=True)):
            key = e[2]
            graph[e[0]][e[1]][key]['label'] = str(graph[e[0]][e[1]][key][edge_label_attr])

    # convert networkx object to graphviz object
    graph_gv = convert_networkx_graph_to_graphiz(graph, directed=False)
    graph_gv.engine = engine
    graph_gv.format = format

    # setting graph options.
    if graph_attr:
        for k, v in graph_attr.items():
            graph_gv.graph_attr[k] = v

    # setting node options (these will override graph attributes if there is overlap)
    if node_attr:
        for k, v in node_attr.items():
            graph_gv.node_attr[k] = v

    # setting edge options (these will override graph attributes if there is overlap)
    if edge_attr:
        for k, v in edge_attr.items():
            graph_gv.edge_attr[k] = v

    # write to disk
    if filename:
        graph_gv.render(filename=filename, view=False)

    return "Plot written to {}".format(filename) 
开发者ID:brooksandrew,项目名称:postman_problems,代码行数:52,代码来源:viz.py


注:本文中的graphviz.Graph方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。