qiskit.visualization.dag_drawer
qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')
Zeichnen Sie den gerichteten azyklischen Graphen (dag) zur Darstellung von Operationsabhängigkeiten in einem Quantenschaltkreis.
Diese Funktion ruft die Funktion graphviz_draw() funktion aus dem Paket rustworkx auf, um die DAG zu zeichnen.
Diese Funktion ruft das systemeigene Graphviz-Tool für eine Datei auf, die vom Benutzer steuerbare Zeichenfolgen (wie beispielsweise Operationsbezeichnungen) enthält. Es wird empfohlen, diese Funktion nur bei vertrauenswürdigen Eingaben aufzurufen.
Parameter
-
dag (DAGCircuit orDAGDependency) – Der dag zum Zeichnen.
-
scale (float) – skalierungsfaktor
-
filename (str) – Dateipfad, unter dem das Bild gespeichert werden soll (Format wird aus dem Namen abgeleitet)
-
Stilname, Dateiname der Stil-JSON-Datei oder ein Wörterbuch, das den Stil angibt.
-
Die unterstützten Stilnamen sind 'plain': B&W-Diagramm, 'color' (Standard):
(Farbeingabe/-ausgabe/-op-Knoten)
-
Bei Angabe einer JSON-Datei, z. B.
my_style.jsonodermy_style(die.jsonerweiterung kann weggelassen werden), versucht diese Funktion, das Stilwörterbuch von diesem Ort zu laden. Beachten Sie, dass die JSON-Datei die Visualisierungsspezifikationen vollständig enthalten muss. Die Datei wird in
qiskit/visualization/circuit/styles, dem aktuellen Arbeitsverzeichnis und dem in~/.qiskit/settings.confangegebenen Ort gesucht. -
Wenn
Nonewird der Standardstil"color"verwendet oder, falls angegeben, der Standardstilin
~/.qiskit/settings.confangegeben.
-
Rückgabe
wenn im Jupyter-Notebook und nicht in einer Datei gespeichert,
ansonsten keine.
Rückgabetyp
PIL.Image
Erhöht
- VisualizationError – wenn der Stil nicht erkannt wird.
- InvalidFileError – wenn der angegebene Dateiname ungültig ist
- ValueError - Wenn die Dateierweiterung für
filenamekein von Graphviz unterstützter Bildtyp ist.
Beispiel
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)