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)
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.
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.
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 salidasmpl,latexylatex_source. Por defecto1.0. -
filename (str | None) – Ruta de archivo donde guardar la imagen. Por defecto
None(el resultado no se guarda en un archivo). -
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.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 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) en5. -
Si
Nonese utiliza el estilo por defecto"iqp"o, si se da, el estilo por defectoespecificado 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óntexta 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 (paramplesto 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 olatex_sourceno tiene ningún efecto y se ignorará silenciosamente. Por defectoFalse. -
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 esFalsea 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.nonehace que cada puerta se coloque en su propia columna. Por defectoleft. -
vertical_compression (str | None) –
high,mediumolow. Fusiona las líneas generadas por la salida de texto para que el dibujo ocupe menos espacio vertical. Por defecto esmedium. Sólo utilizado por la salidatext, 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 utilizandoshutil.get_terminal_size(). Sin embargo, si se ejecuta en jupyter, la longitud de línea por defecto es de 80 caracteres. Enmpl, 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.Axesque 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 al principio de los hilos qubit y 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 esTrue, excepto cuandooutputse 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
Exprse utiliza para la condición en unControlFlowOp. 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
Trueque 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
Barrierlas 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(sioutput='text')Un dibujo que puede imprimirse como arte ascii.
-
matplotlib.figure.Figure(sioutput='mpl')Un objeto figura matplotlib para el diagrama del circuito.
-
PIL.Image(sioutput='latex')Una representación en memoria de la imagen del circuito.
-
str(sioutput='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"})