qiskit.visualization.timeline_drawer
qiskit.visualization.timeline_drawer(program, style=None, time_range=None, disable_bits=None, show_clbits=None, idle_wires=None, plot_barriers=None, show_delays=None, show_labels=True, plotter='mpl', axis=None, filename=None, target=None, *, show_idle=None, show_barriers=None)
Erzeugen Sie Visualisierungsdaten für geplante Schaltprogramme.
Der Parameter target muss in Qiskit 2.0 angegeben werden, um die Dauer der Anweisungen zu erhalten.
qiskit.visualization.timeline.interface.draw()das Argument show_barriers wird ab Qiskit 1.1.0 nicht mehr unterstützt. Sie wird in einer zukünftigen Version als veraltet gekennzeichnet und frühestens 3 Monate nach dem Veröffentlichungsdatum entfernt. Verwenden Sie stattdessen das Argument plot_barriers, das sich identisch verhält.
qiskit.visualization.timeline.interface.draw()das Argument show_idle wird ab Qiskit 1.1.0 nicht mehr unterstützt. Sie wird in einer zukünftigen Version als veraltet gekennzeichnet und frühestens 3 Monate nach dem Veröffentlichungsdatum entfernt. Verwenden Sie stattdessen das Argument idle_wires, das sich identisch verhält.
Parameter
-
program (QuantumCircuit) – Programm zur Visualisierung. Dieses Programm sollte ein „ QuantumCircuit “ sein, das mit einer „scheduling_method“ transpiliert wird und somit Informationen zur Gate-Zeit enthält.
-
style (dict[str, Any] | None) – Optionen für Stylesheets. Dies können Wörterbuch- oder vordefinierte Stylesheet-Klassen sein. Weitere Informationen zu den voreingestellten Stylesheets finden Sie
IQXDebuggingunterIQXStandard,IQXSimple, und. Weitere Informationen zu den Konfigurationsschlüsseln finden Sie im Abschnitt zum Stylesheet. -
time_range (tuple[int, int] | None) – Horizontale Achsenbegrenzung festlegen.
-
disable_bits (list[Bits] | None) – Liste der Qubits und klassischen Bits, die im Ausgabebild nicht dargestellt sind.
-
show_clbits (bool | None) – Eine Kontrolleigenschaft zur Anzeige klassischer Bits. Setzen Sie True, um klassische Bits anzuzeigen.
-
idle_wires (bool | None) – Eine Steuerelement-Eigenschaft zur Anzeige einer inaktiven Zeitleiste. Setzen Sie True, um die Zeitleiste ohne Gates anzuzeigen.
-
plot_barriers (bool | None) – Eine Steuereigenschaft zur Anzeige von Sperranweisungen. Legen Sie True fest, um Anweisungen zur Barrierefreiheit anzuzeigen.
-
show_delays (bool | None) – Eine Steuereigenschaft zur Anzeige von Verzögerungsanweisungen. Setzen Sie True, um Verzögerungsanweisungen anzuzeigen.
-
show_labels (bool) – Eine Kontrolleigenschaft zur Anzeige von Anmerkungen, d. h. Namen, von Gates. Setzen Sie True, um Anmerkungen anzuzeigen.
-
plotter (str | None) –
Name der Plotter-API zur Erzeugung eines Ausgabebildes. Eine der folgenden APIs sollte angegeben werden:
mpl: Matplotlib API Matplotlib API to generate 2D image. Timelines are placed along y axis with vertical offset. This API takes matplotlib.axes.Axes as `axis` input.die Achsen- und Stil-Kwargs können vom Plotter abhängen.
-
axis (Any | None) – Beliebiges Objekt, das an den Plotter übergeben wird. Wenn dieses Objekt angegeben wird, verwendet der Plotter die angegebene Achse, anstatt intern ein Figurenobjekt zu initialisieren. Dieses Objektformat hängt vom Plotter ab. Siehe Abschnitt Plotter für weitere Einzelheiten.
-
filename (str | None) – Falls angegeben, wird das Ausgabebild in eine Datei mit dem Dateinamen gespeichert.
-
target (Target | None) – Das Ziel für das Backend, für das die Zeitleiste erstellt wird.
-
show_idle (bool | None) – ENTFERNT.
-
show_barriers (bool | None) – ENTFERNT.
Rückgabe
Visualisierung der Ausgabedaten.
Der zurückgegebene Datentyp hängt vom Plotter ab. Wenn die Matplotlib-Familie angegeben ist, handelt es sich um Daten von matplotlib.pyplot.Figure. Die zurückgegebenen Daten werden von der Methode.get_image der angegebenen Plotter-API erzeugt.
Erhöht
- MissingOptionalLibraryError – Wenn das erforderliche Visualisierungspaket nicht installiert ist.
- VisualizationError – Wenn eine ungültige Plotter-API angegeben wird.
Stil Diktat Details
Das Stylesheet kwarg enthält zahlreiche Optionen, die den Stil der ausgegebenen Zeitleistenvisualisierung definieren. Die Stylesheet-Optionen können in Formatierer, Generator und Layout unterteilt werden. Die im Stylesheet verfügbaren Optionen werden im Folgenden definiert:
Parameter
-
formatter.general.fig_width - Breite des Ausgabebildes (Standardwert 14).
-
formatter.general.fig_unit_height - Höhe des Ausgabebildes pro Zeitleiste. Die Summe aller Zeitleisten ergibt die Höhe des Ausgabebildes (Standard 0.8 ).
-
formatter.general.dpi - Punkt pro Zoll des Bildes, wenn Dateiname eingestellt ist (Standardwert 150).
-
formatter.margin.top - Abstand von der oberen Begrenzung der Zeichenfläche zur Nulllinie des ersten Zeitfensters (Standardwert 0.5 ).
-
formatter.margin.bottom – Abstand zwischen der unteren Begrenzung der Bildfläche und der Nulllinie des letzten Zeitfensters (Standard 0.5 ).
-
formatter.margin.left_percent - Rand von der linken Begrenzung der Zeichenfläche bis zur linken Grenze der horizontalen Achse. Der Wert wird in Prozent der gesamten Programmdauer angegeben. Wenn die Dauer 100 beträgt und der Wert 0.5 eingestellt ist, wird ein linker Rand von 5 beibehalten (Standard 0.02 ).
-
formatter.margin.right_percent - Rand von der rechten Begrenzung der Bildfläche bis zur rechten Grenze der horizontalen Achse. Der Wert wird in Prozent der gesamten Programmdauer angegeben. Wenn die Dauer 100 beträgt und der Wert 0.5 eingestellt ist, wird ein rechter Rand von 5 beibehalten (Standard 0.02 ).
-
formatter.margin.link_interval_percent - Erlaubte Überlappung von Torverbindungen. Wenn mehrere Gatterverbindungen innerhalb dieses Bereichs gezeichnet werden, werden die Verbindungen horizontal verschoben, damit sie sich nicht überschneiden. Der Wert wird in Prozent der gesamten Programmdauer angegeben (Standard 0.01 ).
-
formatter.time_bucket.edge_dt - Die Länge der runden Kante der Torkästen. Die Gate-Boxen werden von der Nulllinie aus sanft ein- und ausgeblendet. Dieser Wert wird in der Einheit der Systemzykluszeit dt angegeben (Standardwert 10).
-
formatter.margin.minimum_duration - Mindestdauer der geplanten Schaltung. Liegt die Dauer des Eingangsstromkreises unter diesem Wert, wird die horizontale Grenze auf der Grundlage dieses Wertes festgelegt. Dieser Wert wird in der Einheit der Systemzykluszeit dt angegeben (Standardwert 50).
-
formatter.color.background - Farbcode für die Schriftfarbe der Leinwand (Standardwert #FFFFFF).
-
formatter.color.timeslot - Farbe der Oberfläche des Zeitfensters (Standard #DDDDDD).
-
formatter.color.gate_name - Textfarbe der Anmerkungen zum Gatternamen (Standardwert #000000).
-
formatter.color.bit_name - Textfarbe der Bitbeschriftungen (Standardwert #000000).
-
formatter.color.barrier - Linienfarbe der Barrieren (Standard #222222).
-
formatter.color.gates –
Ein Wörterbuch mit den Farben der Gatterboxen oder Gattersymbole, die für jeden Elementtyp in der Ausgabevisualisierung verwendet werden sollen. Die Standardwerte lauten wie folgt:
{ 'u0': '#FA74A6', 'u1': '#000000', 'u2': '#FA74A6', 'u3': '#FA74A6', 'id': '#05BAB6', 'sx': '#FA74A6', 'sxdg': '#FA74A6', 'x': '#05BAB6', 'y': '#05BAB6', 'z': '#05BAB6', 'h': '#6FA4FF', 'cx': '#6FA4FF', 'cy': '#6FA4FF', 'cz': '#6FA4FF', 'swap': '#6FA4FF', 's': '#6FA4FF', 'sdg': '#6FA4FF', 'dcx': '#6FA4FF', 'iswap': '#6FA4FF', 't': '#BB8BFF', 'tdg': '#BB8BFF', 'r': '#BB8BFF', 'rx': '#BB8BFF', 'ry': '#BB8BFF', 'rz': '#000000', 'reset': '#808080', 'measure': '#808080' }Sie müssen alle erforderlichen Werte angeben, wenn Sie dies verwenden. Wird kein Gattername angegeben, wird die Farbe in formatter.color.default_gate verwendet.
-
formatter.color.default_gate - Standard-Torfarbe. Diese Farbe wird verwendet, wenn ein zu visualisierender Gattername nicht im Wörterbuch von formatter.color.gates enthalten ist (Standard #BB8BFF ).
-
formatter.latex_symbol.gates –
Ein Wörterbuch mit einer Latex-Darstellung der Gatternamen, die für jeden Elementtyp in der Ausgabevisualisierung zu verwenden sind. Die Standardwerte lauten wie folgt:
{ 'u0': r'{\rm U}_0', 'u1': r'{\rm U}_1', 'u2': r'{\rm U}_2', 'u3': r'{\rm U}_3', 'id': r'{\rm Id}', 'x': r'{\rm X}', 'y': r'{\rm Y}', 'z': r'{\rm Z}', 'h': r'{\rm H}', 'cx': r'{\rm CX}', 'cy': r'{\rm CY}', 'cz': r'{\rm CZ}', 'swap': r'{\rm SWAP}', 's': r'{\rm S}', 'sdg': r'{\rm S}^\dagger', 'sx': r'{\rm √X}', 'sxdg': r'{\rm √X}^\dagger', 'dcx': r'{\rm DCX}', 'iswap': r'{\rm iSWAP}', 't': r'{\rm T}', 'tdg': r'{\rm T}^\dagger', 'r': r'{\rm R}', 'rx': r'{\rm R}_x', 'ry': r'{\rm R}_y', 'rz': r'{\rm R}_z', 'reset': r'|0\rangle', 'measure': r'{\rm Measure}' }Sie müssen alle erforderlichen Werte angeben, wenn Sie dies verwenden. Es ist nicht vorgesehen, ein unvollständiges Diktat einzureichen.
-
formatter.latex_symbol.frame_change - Latex-Darstellung des Rahmenwechselsymbols (standardmäßig r`circlearrowleft`).
-
formatter.unicode_symbol.frame_change - Unicode-Darstellung des Rahmenwechselsymbols (Standard u’u21BA’ ).
-
formatter.box_height.gate - Höhe des Gatterkastens (Standardwert 0.5 ).
-
formatter.box_height.timeslot - Höhe des Zeitfensters (Standardwert 0.6 ).
-
formatter.layer.gate - Ebenenindex der Gatterboxen. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 3).
-
formatter.layer.timeslot - Schichtenindex der Zeitschlitze. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 0).
-
formatter.layer.gate_name - Ebenenindex der Gatternamen-Anmerkungen. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 5).
-
formatter.layer.bit_name - Ebenenindex der Bitbeschriftungen. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 5).
-
formatter.layer.frame_change - Ebenenindex der Bildwechselsymbole. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 4).
-
formatter.layer.barrier - Schichtindex der Sperrlinien. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 1).
-
formatter.layer.gate_link - Schichtenindex der Gate-Link-Linien. Die größere Zahl erscheint im Vordergrund des Ausgabebildes (Standardwert 2).
-
formatter.alpha.gate - Transparenz der Gatterkästen. Ein Wert im Bereich von 0 bis 1. Der Wert 0 ergibt völlig transparente Felder (Standardwert 1.0 ).
-
formatter.alpha.timeslot - Transparenz der Zeitfenster. Ein Wert im Bereich von 0 bis 1. Der Wert 0 ergibt völlig transparente Felder (Standardwert 0.7 ).
-
formatter.alpha.barrier - Transparenz der Sperrlinien. Ein Wert im Bereich von 0 bis 1. Der Wert 0 ergibt völlig transparente Linien (Standardwert 0.5 ).
-
formatter.alpha.gate_link - Transparenz der Torverbindungslinien. Ein Wert im Bereich von 0 bis 1. Der Wert 0 ergibt völlig transparente Linien (Standardwert 0.8 ).
-
formatter.line_width.gate - Linienbreite des Randes von Gatterboxen (Standardwert 0).
-
formatter.line_width.timeslot - Linienbreite des Streifens der Zeitschlitze (Standardwert 0).
-
formatter.line_width.barrier - Linienbreite der Sperrlinien (Standardwert 3).
-
formatter.line_width.gate_link - Linienbreite der Gatterverbindungen (Standardwert 3).
-
formatter.line_style.barrier - Linienart der Sperrlinien. Dies entspricht der Linienstil-Spezifikation von matplotlib (Standardwert '-').
-
formatter.line_style.gate_link - Linienstil der Torverbindungslinien. Dies entspricht der Linienstil-Spezifikation von matplotlib (Standardwert '-').
-
formatter.text_size.gate_name - Textgröße der Gatternamen-Anmerkungen (Standardwert 12).
-
formatter.text_size.bit_name - Textgröße der Bitbeschriftungen (Standardwert 15).
-
formatter.text_size.frame_change - Textgröße der Rahmenänderungssymbole (Standardwert 18).
-
formatter.text_size.axis_label - Textgröße der Achsenbeschriftungen (Standardwert 13).
-
formatter.label_offset.frame_change - Offset der Null-Dauer-Gate-Name-Anmerkungen von der Null-Linie des Zeitschlitzes (Standard 0.25 ).
-
formatter.control.show_idle - Setzen Sie True, um Zeitschlitze ohne Tor anzuzeigen (Standardwert True).
-
formatter.control.show_clbits - Setzen Sie True, um Zeitschlitze mit klassischen Bits anzuzeigen (Standardwert True).
-
formatter.control.show_barriers - Setzen Sie True, um Barrieren anzuzeigen (Standardwert True).
-
formatter.control.show_delays - Setzen Sie True, um Verzögerungsfelder anzuzeigen (Standardwert True).
-
generator.gates - Liste der Callback-Funktionen, die Zeichnungen für Gates erzeugen. Beliebige Callback-Funktionen, die dem Format des Generators entsprechen, können hier eingestellt werden. Es gibt einige Standardgeneratoren in der Zeitleistenschublade. Siehe
generatorsfür weitere Einzelheiten. Es ist kein Standardgenerator eingestellt (Standard []). -
generator.bits - Liste der Callback-Funktionen, die Zeichnungen für Bit-Labels und Zeitschlitze erzeugen. Beliebige Callback-Funktionen, die dem Format des Generators entsprechen, können hier eingestellt werden. Es gibt einige Standardgeneratoren in der Zeitleistenschublade. Siehe
generatorsfür weitere Einzelheiten. Es ist kein Standardgenerator eingestellt (Standard []). -
generator.barriers - Liste der Callback-Funktionen, die Zeichnungen für Barrieren erzeugen. Beliebige Callback-Funktionen, die dem Format des Generators entsprechen, können hier eingestellt werden. Es gibt einige Standardgeneratoren in der Zeitleistenschublade. Siehe
generatorsfür weitere Einzelheiten. Es ist kein Standardgenerator eingestellt (Standard []). -
generator.gate_links - Liste der Callback-Funktionen, die Zeichnungen für Gate-Links erzeugen. Beliebige Callback-Funktionen, die dem Format des Generators entsprechen, können hier eingestellt werden. Es gibt einige Standardgeneratoren in der Zeitleistenschublade. Siehe
generatorsfür weitere Einzelheiten. Es ist kein Standardgenerator eingestellt (Standard []). -
layout.bit_arrange - Callback-Funktion, die Bits sortiert. Siehe
layoutsfür weitere Einzelheiten. Es ist kein Standardlayout festgelegt. (Standardwert Keine). -
layout.time_axis_map - Callback-Funktion, die das Layout der horizontalen Achsenbeschriftungen bestimmt. Siehe
layoutsfür weitere Einzelheiten. Es ist kein Standardlayout festgelegt. (Standardwert Keine). -
program (QuantumCircuit)
-
disable_bits (list[Bits] | None)
-
show_clbits (bool | None)
-
idle_wires (bool | None)
-
plot_barriers (bool | None)
-
show_delays (bool | None)
-
show_labels (bool)
-
plotter (str | None)
-
axis (Any | None)
-
filename (str | None)
-
target (Target | None)
-
show_idle (bool | None)
-
show_barriers (bool | None)
Beispiele
Um ein geplantes Schaltprogramm zu visualisieren, können Sie diese Funktion mit einer Reihe von Steuerargumenten aufrufen. Das Aussehen des Ausgabebildes kann größtenteils über das Stylesheet gesteuert werden.
Zeichnen mit dem Standard-Stylesheet.
from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw
from qiskit.providers.fake_provider import GenericBackendV2
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
backend = GenericBackendV2(5)
qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, target=backend.target)
Zeichnen mit dem einfachen Stylesheet.
from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw, IQXSimple
from qiskit.providers.fake_provider import GenericBackendV2
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
backend = GenericBackendV2(5)
qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, style=IQXSimple(), target=backend.target)
Das Zeichnen mit dem Stylesheet eignet sich für das Debugging von Programmen.
from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw, IQXDebugging
from qiskit.providers.fake_provider import GenericBackendV2
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
backend = GenericBackendV2(5)
qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, style=IQXDebugging(), target=backend.target)
Sie können ein voreingestelltes Stylesheet teilweise anpassen, wenn Sie es aufrufen:
my_style = {
'formatter.general.fig_width': 16,
'formatter.general.fig_unit_height': 1
}
style = IQXStandard(**my_style)
# draw
draw(qc, style=style)Auf dieselbe Weise wie oben können Sie benutzerdefinierte Generator- oder Layoutfunktionen erstellen und bestehende Stylesheets mit benutzerdefinierten Funktionen aktualisieren. Mit dieser Funktion können Sie das Erscheinungsbild des Ausgabebildes weitgehend kontrollieren, ohne die Codebasis des geplanten Schaltkreises zu verändern.