qiskit.visualization.dag_drawer
qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')
Tracciare il grafo aciclico diretto (dag) per rappresentare le dipendenze delle operazioni in un circuito quantistico.
Questa funzione richiama la funzione graphviz_draw() del pacchetto rustworkx per disegnare il DAG.
Questa funzione richiamerà lo strumento Graphviz di sistema su un file contenente stringhe modificabili dall'utente (come le etichette delle operazioni). Si raccomanda di richiamare questa funzione solo con dati di input attendibili.
Parametri
-
dag (DAGCircuit orDAGDependency) – Il dag per disegnare.
-
scale (float) – fattore di scala
-
filename (str) – percorso del file in cui salvare l'immagine (formato dedotto dal nome)
-
Nome dello stile, nome del file JSON dello stile o un dizionario che specifica lo stile.
-
I nomi degli stili supportati sono 'plain': Grafico B&W, 'color' (predefinito):
(nodi di ingresso/uscita/op a colori)
-
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
Noneviene utilizzato lo stile predefinito"color"o, se dato, lo stile predefinitospecificato in
~/.qiskit/settings.conf.
-
Risultati
se in un notebook Jupyter e non salvando su file,
Altrimenti, non se ne sceglierà alcuna.
Tipo di restituzione
PIL.Image
Aumenti
- VisualizationError – quando lo stile non viene riconosciuto.
- InvalidFileError – quando il nome del file specificato non è valido
- ValueError - Se l'estensione del file
filenamenon è un tipo di immagine supportato da Graphviz.
Esempio
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)