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

Disegnare il circuito quantistico. Utilizzare il parametro di output per scegliere il formato del disegno:


text

Arte ASCII TextDrawing che può essere visualizzata nella console.


mpl

Immagini con colori generati esclusivamente in Python utilizzando matplotlib.


latex

Immagini di alta qualità raccolte tramite LaTeX.

Avvertenza

Per come è stato progettato, questo richiamerà una versione di sistema pdflatex installata in base a un input arbitrario dell'utente (ad esempio per eseguire codice personalizzato in Instruction.label), pertanto dovrebbe essere utilizzato solo con dati attendibili.


latex_source

Output grezzo e non compilato di LaTeX. Questo è il codice sorgente di ciò che verrebbe visualizzato dal programma latex di disegno.

Avvertenza

Il supporto per Expr i nodi nelle condizioni e SwitchCaseOp.target nei campi è preliminare e incompleto. I text riquadri e mpl cercheranno, per quanto possibile, di mostrare le dipendenze dei dati, mentre i riquadri LaTeX-based le le ignoreranno completamente.

Parametri

  • circuit (QuantumCircuit) – Il circuito da visualizzare.

  • scale (float | None) – Scala dell'immagine da disegnare (ridurre se < 1.0). Utilizzato solo dalle uscite mpl, latex e latex_source . L'impostazione predefinita è 1.0.

  • filename (str | None) – Percorso del file in cui salvare l'immagine. L'impostazione predefinita è None (il risultato non viene salvato in un file).

  • style (dict |str | None) –

    Nome dello stile, nome del file JSON dello stile o un dizionario che specifica lo stile.

    • I nomi di stile supportati sono "iqp" (predefinito), "iqp-dark", "clifford",

      "textbook" e "bw".

    • Se viene dato un file JSON, ad esempio my_style.json o my_style (il .json

      può essere omessa), questa funzione tenta di caricare il dizionario di stile da quella posizione. Si noti che il file JSON deve specificare completamente le specifiche di visualizzazione. Il file viene cercato in qiskit/visualization/circuit/styles, la directory di lavoro corrente, e nella posizione specificata in ~/.qiskit/settings.conf.

    • Se si tratta di un dizionario, ogni voce sovrascrive la configurazione predefinita. Se il comando

      "name" Se viene specificato un key, la configurazione predefinita è quella definita da quello stile. Ad esempio, {"name": "textbook", "subfontsize": 5} carica lo "textbook" stile e imposta la dimensione secondaria dei caratteri (ad esempio, gli angoli delle porte) su 5.

    • Se None viene utilizzato lo stile predefinito "iqp" o, se dato, lo stile predefinito

      specificato in ~/.qiskit/settings.conf.

  • output (str | None) – Selezionare il metodo di uscita da utilizzare per disegnare il circuito. Le scelte valide sono text, mpl, latex, latex_source. Per impostazione predefinita, viene utilizzato il cassetto text , a meno che il file di configurazione dell'utente (di solito ~/.qiskit/settings.conf) non abbia un backend alternativo impostato come predefinito. Ad esempio, circuit_drawer = latex. Se il kwarg di uscita è impostato, quel backend sarà sempre usato al posto di quello predefinito nel file di configurazione dell'utente.

  • interactive (bool) – Se impostato su True, mostra il circuito in una nuova finestra (per mpl dipende dal backend matplotlib utilizzato che lo supporta). Si noti che quando viene utilizzato con il tipo di output text o latex_source questo non ha alcun effetto e viene ignorato. L'impostazione predefinita è False.

  • reverse_bits (bool | None) – Se impostato su True, inverte l'ordine dei bit all'interno dei registri per la visualizzazione dell'uscita. Il valore predefinito è False , a meno che nel file di configurazione dell'utente (di solito ~/.qiskit/settings.conf) non sia stato impostato un valore alternativo. Ad esempio, circuit_reverse_bits = True.

  • plot_barriers (bool) – Abilita/disabilita le barriere di disegno nel circuito di uscita. L'impostazione predefinita è True.

  • justify (str | None) – Le opzioni sono "left", "right" o "none" (str). Se viene fornito qualcos'altro, verrà utilizzato il tasto sinistro giustificato. Si riferisce alla posizione dei gate nel circuito di uscita, se esiste un'opzione. none risulta che ogni cancello viene collocato nella propria colonna. L'impostazione predefinita è left.

  • vertical_compression (str | None) – high, medium o low. Unisce le linee generate dall'output di testo in modo che il disegno occupi meno spazio verticale. L'impostazione predefinita è medium. Utilizzato solo dall'uscita text , altrimenti viene ignorato.

  • idle_wires (bool |str | None) – Includere (o meno) i fili inattivi (fili senza elementi di circuito) nella visualizzazione dell'uscita. È anche possibile utilizzare la stringa "auto" , nel qual caso i fili inattivi vengono mostrati, tranne che per il fatto che il circuito ha un layout allegato. L'impostazione predefinita è "auto" , a meno che nel file di configurazione dell'utente (di solito ~/.qiskit/settings.conf) non sia stato impostato un valore alternativo. Ad esempio, circuit_idle_wires = False.

  • with_layout (bool) – Includere informazioni sul layout, con etichette sul layout fisico. Il valore predefinito è True.

  • fold (int | None) – Imposta la paginazione. Può essere disattivato con -1. In text, imposta la lunghezza delle linee. È utile quando il disegno non entra nella console. Se None (predefinito), cercherà di indovinare la larghezza della console utilizzando shutil.get_terminal_size(). Tuttavia, se si esegue in jupyter, la lunghezza predefinita delle righe è impostata a 80 caratteri. In mpl, è il numero di strati (visivi) prima della piegatura. L'impostazione predefinita è 25.

  • ax (Any | None) – Utilizzato solo dal backend mpl. Un oggetto opzionale matplotlib.axes.Axes da usare per l'output di visualizzazione. Se non viene specificato nulla, verrà creata e utilizzata una nuova Figura matplotlib. Inoltre, se specificato, non verrà restituita alcuna Figura, poiché è ridondante.

  • initial_state (bool) – Aggiunge 0|0\rangle all'inizio dei fili dei qubit e 00 ai fili classici. Il valore predefinito è False.

  • cregbundle (bool | None) – Se impostato su True, raggruppa i registri classici. Il valore predefinito è True, tranne quando output è impostato su "text".

  • wire_order (list[int] | None) – Un elenco di numeri interi utilizzati per riordinare la visualizzazione dei bit. L'elenco deve contenere una voce per ogni bit con i bit nell'intervallo da 0 a (num_qubits + num_clbits).

  • expr_len (int) – Il numero di caratteri da visualizzare se si utilizza un Expr come condizione in un ControlFlowOp. Se questo numero viene superato, la stringa verrà troncata a quel numero e alla fine verrà aggiunto «…».

  • measure_arrows (bool | None) – Se True, disegna una freccia da ogni casella di misura verso il bit o il registro in cui è posizionato il valore della misura. Se il valore è False, non disegnare la freccia, ma inserire invece il nome del bit o del registro nella casella della misura. Il valore predefinito è, a meno True che nel file di configurazione dell'utente (di solito ~/.qiskit/settings.conf) non sia specificato un valore alternativo. Ad esempio, circuit_measure_arrows = False.

  • barrier_label_len (int) – Il numero di caratteri da visualizzare per Barrier le etichette nel circuito di uscita. Se questo numero viene superato, la stringa verrà troncata a quel numero e alla fine verrà aggiunto «…».

Risultati

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

  • TextDrawing (se output='text')

    Un disegno che può essere stampato come arte ascii.

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

    Un oggetto figura matplotlib per il diagramma del circuito.

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

    Una rappresentazione in memoria dell'immagine dello schema circuitale.

  • str (se output='latex_source')

    Il codice sorgente di LaTeX per la visualizzazione dello schema circuitale.

Aumenti

  • VisualizationError – quando viene selezionato un metodo di output non valido
  • ImportError - quando i metodi di output richiedono librerie non installate.

Esempio

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"})
Schema del circuito prodotto dal codice precedente.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.