Skip to main content
IBM Quantum Platform

qiskit.visualization.circuit_drawer

qiskit.visualization.circuit_drawer(circuit, scale=None, filename=None, style=None, output=None, interactive=False, plot_barriers=True, reverse_bits=None, justify=None, vertical_compression='medium', idle_wires=None, with_layout=True, fold=None, ax=None, initial_state=False, cregbundle=None, wire_order=None, expr_len=30, measure_arrows=None, barrier_label_len=16)

GitHub

Dibuja el circuito cuántico. Utilice el parámetro de salida para elegir el formato de dibujo:


text

Arte ASCII TextDrawing que se puede imprimir en la consola.


mpl

Imágenes con colores generados exclusivamente en Python utilizando matplotlib.


latex

Imágenes de alta calidad recopiladas a través de LaTeX.

Aviso

Esto ejecutará una versión del sistema instalada pdflatex a partir de cualquier entrada del usuario, tal y como está diseñado (por ejemplo, para ejecutar código personalizado en Instruction.label), por lo que solo debe utilizarse con datos de confianza.


latex_source

Salida sin procesar y sin compilar de « LaTeX ». Este es el código fuente de lo que mostraría el programa latex de dibujo.

Aviso

La compatibilidad con Expr nodos en condiciones y campos SwitchCaseOp.target es preliminar e incompleta. Los cajones text y mpl se esforzarán al máximo por mostrar las dependencias de los datos, pero los cajones LaTeX-based las omitirán por completo.

Parámetros

  • circuit (QuantumCircuit) – El circuito a visualizar.

  • scale (float | None) – Escala de la imagen a dibujar (encoge si < 1.0). Sólo utilizado por las salidas mpl, latex y latex_source . Por defecto 1.0.

  • filename (str | None) – Ruta de archivo donde guardar la imagen. Por defecto None (el resultado no se guarda en un archivo).

  • style (dict |str | None) –

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

    • Los nombres de estilo admitidos son "iqp" (por defecto), "iqp-dark", "clifford",

      "textbook" y "bw".

    • 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 es un diccionario, cada entrada anula la configuración por defecto. Si el mandato

      "name" Si se especifica una clave, la configuración predeterminada viene determinada por ese estilo. Por ejemplo, {"name": "textbook", "subfontsize": 5} carga el "textbook" estilo y establece el tamaño de la subfuente (por ejemplo, los ángulos de las compuertas) en 5.

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

      especificado en ~/.qiskit/settings.conf.

  • output (str | None) – Seleccione el método de salida que desea utilizar para dibujar el circuito. Las opciones válidas son text, mpl, latex, latex_source. Por defecto, se utiliza el cajón text a menos que el archivo de configuración del usuario (normalmente ~/.qiskit/settings.conf) tenga un backend alternativo establecido como predeterminado. Por ejemplo, circuit_drawer = latex. Si se establece el kwarg de salida, ese backend se utilizará siempre por encima del predeterminado en el archivo de configuración de usuario.

  • interactive (bool) – Cuando se establece en True, muestra el circuito en una nueva ventana (para mpl esto depende de que el backend matplotlib que se utilice lo soporte). Tenga en cuenta que cuando se utiliza con el tipo de salida de texto o latex_source no tiene ningún efecto y se ignorará silenciosamente. Por defecto False.

  • reverse_bits (bool | None) – Cuando se establece en True, invierte el orden de bits dentro de los registros para la visualización de salida. Por defecto es False a menos que el archivo de configuración del usuario (normalmente ~/.qiskit/settings.conf) tenga un valor alternativo. Por ejemplo, circuit_reverse_bits = True.

  • plot_barriers (bool) – Activa/desactiva las barreras de dibujo en el circuito de salida. El valor predeterminado es True.

  • justify (str | None) – Las opciones son "left", "right" o "none" (str). Si se suministra cualquier otra cosa, se utilizará la justificación a la izquierda. Se refiere a dónde deben colocarse las compuertas en el circuito de salida si existe la opción. none hace que cada puerta se coloque en su propia columna. Por defecto left.

  • vertical_compression (str | None) – high, medium o low. Fusiona las líneas generadas por la salida de texto para que el dibujo ocupe menos espacio vertical. Por defecto es medium. Sólo utilizado por la salida text , se ignorará silenciosamente en caso contrario.

  • idle_wires (bool |str | None) – Incluir (o no) los hilos ociosos (hilos sin elementos de circuito) en la visualización de la salida. También es posible la cadena "auto" , en cuyo caso se muestran los cables inactivos excepto que el circuito tiene un diseño adjunto. Por defecto es "auto" a menos que el archivo de configuración del usuario (normalmente ~/.qiskit/settings.conf) tenga un valor alternativo. Por ejemplo, circuit_idle_wires = False.

  • with_layout (bool) – Incluya información sobre el diseño, con etiquetas en el diseño físico. El valor predeterminado es True.

  • fold (int | None) – Establece la paginación. Puede desactivarse mediante -1. En text, establece la longitud de las líneas. Esto es útil cuando el dibujo no cabe en la consola. Si es Ninguno (por defecto), intentará adivinar el ancho de la consola utilizando shutil.get_terminal_size(). Sin embargo, si se ejecuta en jupyter, la longitud de línea por defecto es de 80 caracteres. En mpl, es el número de capas (visuales) antes del plegado. Por defecto es 25.

  • ax (Any | None) – Sólo utilizado por el backend mpl. Un objeto opcional matplotlib.axes.Axes que se utilizará para la salida de visualización. Si no se especifica ninguna, se creará y utilizará una nueva figura matplotlib. Además, si se especifica no se devolverá la Figura ya que es redundante.

  • initial_state (bool) – Añade 0|0\rangle al principio de los hilos qubit y 00 a los hilos clásicos. El valor predeterminado es False.

  • cregbundle (bool | None) – Si se establece en True, agrupa los registros clásicos. Por defecto es True, excepto cuando output se establece en "text".

  • wire_order (list[int] | None) – Una lista de enteros utilizada para reordenar la visualización de los bits. La lista debe tener una entrada para cada bit con los bits en el rango de 0 a (num_qubits + num_clbits).

  • expr_len (int) – El número de caracteres a mostrar si se utiliza un Expr se utiliza para la condición en un ControlFlowOp. Si se supera este número, la cadena se truncará en ese número y se añadirá '...' al final.

  • measure_arrows (bool | None) – Si el valor es «True», dibuja una flecha desde cada cuadro de compás hacia abajo, hasta el bit o registro clásico en el que se encuentra el valor del compás. Si es «False», no dibujes la flecha, sino que escribe el nombre del bit o del registro en el cuadro de medida. El valor predeterminado es, a menos True que el archivo de configuración del usuario (normalmente ~/.qiskit/settings.conf) tenga establecido un valor alternativo. Por ejemplo, circuit_measure_arrows = False.

  • barrier_label_len (int) – El número de caracteres que se mostrarán en Barrier las etiquetas del circuito de salida. Si se supera este número, la cadena se truncará en ese número y se añadirá «…» al final.

Devuelve

TextDrawing o matplotlib.figure o PIL.Image o str:

  • TextDrawing (si output='text')

    Un dibujo que puede imprimirse como arte ascii.

  • matplotlib.figure.Figure (si output='mpl')

    Un objeto figura matplotlib para el diagrama del circuito.

  • PIL.Image (si output='latex')

    Una representación en memoria de la imagen del circuito.

  • str (si output='latex_source')

    El código fuente LaTeX para visualizar el esquema del circuito.

Eleva

  • VisualizationError - cuando se selecciona un método de salida no válido
  • ImportError - cuando los métodos de salida requieren bibliotecas no instaladas.

Ejemplo

from qiskit import QuantumCircuit
from qiskit.visualization import circuit_drawer
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.measure(0, 0)
circuit_drawer(qc, output="mpl", style={"backgroundcolor": "#EEEEEE"})
Diagrama del circuito generado por el código anterior.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.