Skip to main content
IBM Quantum Platform

qiskit.visualization.dag_drawer

qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')

GitHub

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.

Warnung

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)

  • style (dict orstr) –

    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.json oder my_style (die .json

      erweiterung 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.conf angegebenen Ort gesucht.

    • Wenn None wird der Standardstil "color" verwendet oder, falls angegeben, der Standardstil

      in ~/.qiskit/settings.conf angegeben.

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 filename kein 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)
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.