Skip to main content
IBM Quantum Platform

qiskit.visualization.dag_drawer

qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')

GitHub

Trazar el grafo acíclico dirigido (dag) para representar las dependencias de las operaciones en un circuito cuántico.

Esta función llama a la función graphviz_draw() del paquete rustworkx para dibujar el DAG.

Aviso

Esta función ejecutará la herramienta Graphviz del sistema sobre un archivo que contenga cadenas de texto controladas por el usuario (como las etiquetas de operaciones). Se recomienda llamar a esta función únicamente con datos de confianza.

Parámetros

  • dag (DAGCircuit orDAGDependency) – El dag para dibujar.

  • scale (float) – factor de escala

  • filename (str) – ruta del archivo donde se guardará la imagen (el formato se deduce del nombre)

  • style (dict orstr) –

    Nombre del estilo, nombre del archivo JSON del estilo o un diccionario que especifique el estilo.

    • Los nombres de estilo admitidos son 'plain Gráfico B&W, 'color' (por defecto):

      (nodos de entrada/salida/op de color)

    • Si se le da un fichero JSON, por ejemplo my_style.json o my_style (el .json

      puede omitirse), esta función intenta cargar el diccionario de estilos desde esa ubicación. Tenga en cuenta que el archivo JSON debe especificar completamente las especificaciones de visualización. El archivo se busca en qiskit/visualization/circuit/styles, el directorio de trabajo actual y la ubicación especificada en ~/.qiskit/settings.conf.

    • Si None se utiliza el estilo por defecto "color" o, si se da, el estilo por defecto

      especificado en ~/.qiskit/settings.conf.

Devuelve

si está en el cuaderno Jupyter y no se guarda en un archivo,

de lo contrario, ninguna.

Tipo de retorno

PIL.Image

Eleva

  • VisualizationError - cuando no se reconoce el estilo.
  • InvalidFileError - cuando el nombre de archivo proporcionado no es válido
  • ValueError - Si la extensión del archivo filename no es un tipo de imagen soportado por Graphviz.

Ejemplo

from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.converters import circuit_to_dag
from qiskit.visualization import dag_drawer

q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
with circ.if_test((c, 2)):
    circ.rz(0.5, q[1])

dag = circuit_to_dag(circ)

style = {
    "inputnodecolor": "pink",
    "outputnodecolor": "lightblue",
    "opnodecolor": "red",
}

dag_drawer(dag, style=style)
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.