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)
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.
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.
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 uscitempl,latexelatex_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). -
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.jsonomy_style(il.jsonpuò 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) su5. -
Se
Noneviene utilizzato lo stile predefinito"iqp"o, se dato, lo stile predefinitospecificato 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 cassettotext, 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 (permpldipende dal backend matplotlib utilizzato che lo supporta). Si noti che quando viene utilizzato con il tipo di output text olatex_sourcequesto 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.nonerisulta che ogni cancello viene collocato nella propria colonna. L'impostazione predefinita èleft. -
vertical_compression (str | None) –
high,mediumolow. Unisce le linee generate dall'output di testo in modo che il disegno occupi meno spazio verticale. L'impostazione predefinita èmedium. Utilizzato solo dall'uscitatext, 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 utilizzandoshutil.get_terminal_size(). Tuttavia, se si esegue in jupyter, la lunghezza predefinita delle righe è impostata a 80 caratteri. Inmpl, è 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.Axesda 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 all'inizio dei fili dei qubit e ai fili classici. Il valore predefinito è
False. -
cregbundle (bool | None) – Se impostato su
True, raggruppa i registri classici. Il valore predefinito èTrue, tranne quandooutputè 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
Exprcome condizione in unControlFlowOp. 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
Trueche 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
Barrierle 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(seoutput='text')Un disegno che può essere stampato come arte ascii.
-
matplotlib.figure.Figure(seoutput='mpl')Un oggetto figura matplotlib per il diagramma del circuito.
-
PIL.Image(seoutput='latex')Una rappresentazione in memoria dell'immagine dello schema circuitale.
-
str(seoutput='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"})