qiskit.visualization.dag_drawer
qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')
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.
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)
-
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.jsonomy_style(el.jsonpuede 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
Nonese utiliza el estilo por defecto"color"o, si se da, el estilo por defectoespecificado 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
filenameno 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)