Visualisierungen
qiskit.visualization
Das Visualisierungsmodul enthält Funktionen zur Visualisierung von Messergebnissen, Quantenzuständen, Schaltungen, Geräten und mehr.
Um die Visualisierungsfunktionen zu nutzen, müssen Sie Visualisierungsoptionen in Ihrer Entwicklungsumgebung installieren:
pip install 'qiskit[visualization]'Generell können die Visualisierungstools in Qiskit bei beliebigen Benutzereingaben Systemprogramme aufrufen und sollten daher nur mit vertrauenswürdigen Eingaben verwendet werden. Die in Qiskit bereitgestellten Visualisierungstools sind hauptsächlich für die lokale Visualisierung gedacht und ermöglichen bewusst an mehreren Stellen die Einbindung von Benutzercode, beispielsweise in Form von Graphviz-Knotenbezeichnungen wie Registernamen in DAGCircuit.draw()oder von Befehlsbezeichnungen aus Instruction.label „ LaTeX “ im latex Modus von QuantumCircuit.draw().
Häufige Schlüsselwortargumente
Viele der Figuren, die von den Visualisierungsfunktionen in diesem Modul erstellt werden, werden von Matplotlib erstellt und akzeptieren eine Teilmenge der folgenden allgemeinen Argumente. Genaue Angaben finden Sie in den einzelnen Unterlagen.
title(str): eine Zeichenkette, die für den Titel des Plots verwendet wird.legend(list): eine Liste von Zeichenketten, die für die Beschriftung der Daten verwendet werden sollen.figsize(tuple): Größe der Figur in Zoll.color(list): eine Liste von Zeichenketten zum Plotten.ax( matplotlib.axes.Axes ): Ein optionalesAxesObjekt, das für die Visualisierungsausgabe verwendet wird. Wenn keine Angabe gemacht wird, wird eine neue matplotlib.figure.Figure erstellt und verwendet. Außerdem wird, falls angegeben, keineFigurezurückgegeben, da sie überflüssig ist.filename(str): Dateipfad, in dem das Bild gespeichert werden soll.
Das folgende Beispiel demonstriert die übliche Verwendung dieser Argumente:
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
plot_histogram(data)
Sie können legend, title, figsize und color durch Übergabe an die kwargs angeben.
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
legend = ['First execution', 'Second execution']
title = 'New histogram'
figsize = (10,10)
color=['crimson','midnightblue']
plot_histogram(data, legend=legend, title=title, figsize=figsize, color=color)
Sie können die Abbildung in einer Datei speichern, indem Sie den Dateinamen an filename kwarg übergeben oder die matplotlib.figure.Figure.savefig methode.
plot_histogram(data, filename='new_hist.png')
hist = plot_histogram(data)
hist.savefig('new_hist.png')Zählungen Visualisierungen
Dieser Abschnitt enthält Funktionen zur Visualisierung der Anzahl der Messergebnisse.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
plot_histogram(Daten[, Abbildungsgröße, Farbe,...] ) | Zeichnen Sie ein Histogramm der eingegebenen Zähldaten. |
Beispiel für die Verwendung
Hier ist ein Beispiel für die Verwendung von plot_histogram() zur Visualisierung von Messwerten:
from qiskit.visualization import plot_histogram
counts = {"00": 501, "11": 499}
plot_histogram(counts)
get_counts()Die Daten können ein Wörterbuch sein, bei dem die Bitstrings als Schlüssel und die Zählwerte als Werte dienen, oder – was häufiger der Fall ist – ein Counts Objekt, das aus … gewonnen wird.
Verteilungsvisualisierungen
Dieser Abschnitt enthält Funktionen zur Visualisierung von Stichprobenverteilungen.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
plot_distribution(Daten[, Abbildungsgröße, Farbe,...] ) | Plotten einer Verteilung aus eingegebenen Stichprobendaten. |
Staatliche Visualisierungen
Dieser Abschnitt enthält Funktionen zur Visualisierung von Quantenzuständen.
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
plot_bloch_vector(Bloch[, Titel, Axe, …] ) | Zeichnen Sie die Bloch-Kugel. |
plot_bloch_multivector(Bundesstaat[, Titel,...] ) | Zeichnen Sie für jedes Qubit eine Bloch-Kugel. |
plot_state_city(Zustand[, Titel, Abbildungsgröße,...] ) | Zeichnen Sie das Stadtbild des Quantenzustands. |
plot_state_hinton(Zustand[, Titel, Abbildungsgröße,...] ) | Zeichnen Sie ein Hinton-Diagramm für die Dichtematrix eines Quantenzustands. |
plot_state_paulivec(Zustand[, Titel, Abbildungsgröße,...] ) | Stellen Sie die Pauli-Vektor-Darstellung eines Quantenzustands als Balkendiagramm dar. |
plot_state_qsphere(Zustand[, Abbildungsgröße, Achse,...] ) | Zeichnen Sie die qsphärische Darstellung eines Quantenzustands. |
Beispiel für die Verwendung
Hier ist ein Beispiel für die Verwendung von plot_state_city() zur Visualisierung eines Quantenzustands:
from qiskit.visualization import plot_state_city
state = [[ 0.75 , 0.433j],
[-0.433j, 0.25 ]]
plot_state_city(state)
QuantumCircuitDer Zustand kann eine arrayähnliche Liste von Listen sein, numpy.array oder – was häufiger der Fall ist Statevector – DensityMatrix Objekte, die aus einem stammen:
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_state_city
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
# plot using a Statevector
state = Statevector(qc)
plot_state_city(state)
from qiskit import QuantumCircuit
from qiskit.quantum_info import DensityMatrix
from qiskit.visualization import plot_state_city
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
# plot using a DensityMatrix
state = DensityMatrix(qc)
plot_state_city(state)
Codebeispiele für die einzelnen Visualisierungsfunktionen finden Sie auf der API-Seite der einzelnen Funktionen.
Gerätevisualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
plot_gate_map(Backend[, Bildgröße,...] ) | Stellt die Gate-Map eines Geräts dar. |
plot_error_map(Backend[, Bildgröße,...] ) | Stellt die Fehlerkarte eines bestimmten Backends dar. |
plot_circuit_layout(Schaltung, Backend[,...] ) | Zeichnen Sie das Layout eines Schaltkreises, der für ein bestimmtes Ziel-Backend umgesetzt wurde. |
plot_coupling_map(num_qubits,...[,...] ) | Zeichnet eine beliebige Kopplungskarte von Qubits (eingebettet in eine Ebene). |
Schaltungsvisualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
circuit_drawer(Schaltkreis[, Skala, Dateiname,...] ) | Zeichnen Sie den Quantenkreis. |
DAG-Visualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
dag_drawer(Tag[, Skala, Dateiname, Stil] ) | Zeichnen Sie den gerichteten azyklischen Graphen (dag) zur Darstellung von Operationsabhängigkeiten in einem Quantenschaltkreis. |
Passmanager-Visualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
pass_manager_drawer(pass_manager[,...] ) | Zeichnet den Passmanager. |
Zeitleistenvisualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
timeline_drawer(Programm[, Stil,...] ) | Erzeugen Sie Visualisierungsdaten für geplante Schaltprogramme. |
Visualisierungen von Zustandsübergängen einzelner Qubits
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
visualize_transition(Schaltung[, Leiterbahn,...] ) | Erstellt eine Animation, die Übergänge zwischen den Zuständen eines einzelnen Qubits durch Anwendung von Quantengattern zeigt. |
Array-/Matrix-Visualisierungen
Kolumne „ 1 “ | Kolumne „ 2 “ |
|---|---|
array_to_latex(Array[, Genauigkeit, Präfix,...] ) | Latex-Darstellung eines komplexen Numpy-Arrays (mit Dimension 1 oder 2) |
Ausnahmen
VisualizationError
exception qiskit.visualization.VisualizationError(*message)
Basen: QiskitError
Für visualisierungsspezifische Fehler.
Legen Sie die Fehlermeldung fest.