Visualizzazioni
qiskit.visualization
Il modulo di visualizzazione contiene funzioni che visualizzano i conteggi dei risultati delle misure, gli stati quantistici, i circuiti, i dispositivi e altro ancora.
Per utilizzare le funzioni di visualizzazione, è necessario installare le opzioni di visualizzazione nel proprio ambiente di sviluppo:
pip install 'qiskit[visualization]'In generale, gli strumenti di visualizzazione di Qiskit possono richiamare programmi di sistema in base a input arbitrari forniti dall'utente e dovrebbero essere utilizzati solo con input attendibili. Gli strumenti di visualizzazione forniti da Qiskit sono destinati principalmente alla visualizzazione locale e consentono deliberatamente l’inserimento di codice utente in diversi punti, come le etichette dei nodi di Graphviz (ad esempio i nomi dei registri in DAGCircuit.draw()) o le etichette delle istruzioni di “ LaTeX ” da Instruction.label nella modalità latex di QuantumCircuit.draw().
Argomenti comuni relativi alle parole chiave
Molte delle figure create dalle funzioni di visualizzazione di questo modulo sono create da Matplotlib e accettano un sottoinsieme dei seguenti argomenti comuni. Consultare la documentazione individuale per i dettagli esatti.
title(str): una stringa di testo da utilizzare per il titolo della trama.legend(list): un elenco di stringhe da usare per le etichette dei dati.figsize(tuple): dimensione della figura in pollici.color(list): un elenco di stringhe da tracciare.ax( matplotlib.axes.Axes ): Un oggetto opzionaleAxesda usare per l'output di visualizzazione. Se non viene specificato nulla, verrà creato e utilizzato un nuovo file matplotlib.figure.Figure verrà creato e utilizzato. Inoltre, se specificato, non verrà restituitoFigure, poiché è ridondante.filename(str): percorso del file in cui salvare l'immagine.
L'esempio seguente mostra l'uso comune di questi argomenti:
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
plot_histogram(data)
È possibile specificare legend, title, figsize e color passando ai kwarg.
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)
È possibile salvare la figura in un file passando il nome del file a filename kwarg o utilizzando il metodo matplotlib.figure.Figure.savefig metodo.
plot_histogram(data, filename='new_hist.png')
hist = plot_histogram(data)
hist.savefig('new_hist.png')Conta visualizzazioni
Questa sezione contiene funzioni che visualizzano i conteggi dei risultati delle misurazioni.
plot_histogram(dati[, dimensione della figura, colore,...] ) | Traccia un istogramma dei dati dei conteggi in ingresso. |
Utilizzo di esempio
Ecco un esempio di utilizzo di plot_histogram() per visualizzare il numero di risultati delle misurazioni:
from qiskit.visualization import plot_histogram
counts = {"00": 501, "11": 499}
plot_histogram(counts)
I dati possono essere un dizionario con una stringa di bit come chiave e i conteggi come valore, oppure, più comunemente, un Counts oggetto ottenuto da get_counts().
Visualizzazioni della distribuzione
Questa sezione contiene funzioni che visualizzano distribuzioni campionate.
plot_distribution(dati[, dimensione della figura, colore,...] ) | Tracciare una distribuzione dai dati campionati in ingresso. |
Visualizzazioni dello stato
Questa sezione contiene funzioni che visualizzano gli stati quantici.
plot_bloch_vector(Bloch[, titolo, ascia,...] ) | Tracciare la sfera di Bloch. |
plot_bloch_multivector(stato[, titolo,...] ) | Tracciare una sfera di Bloch per ogni qubit. |
plot_state_city(stato[, titolo, dimensione figura,...] ) | Tracciare il paesaggio urbano dello stato quantico. |
plot_state_hinton(stato[, titolo, dimensione figura,...] ) | Tracciare un diagramma di Hinton per la matrice di densità di uno stato quantistico. |
plot_state_paulivec(stato[, titolo, dimensione figura,...] ) | Tracciare la rappresentazione del vettore Pauli di uno stato quantistico come grafico a barre. |
plot_state_qsphere(stato[, dimensioneFig, asse,...] ) | Tracciare la rappresentazione della qsfera di uno stato quantistico. |
Utilizzo di esempio
Ecco un esempio di utilizzo di plot_state_city() per visualizzare uno stato quantistico:
from qiskit.visualization import plot_state_city
state = [[ 0.75 , 0.433j],
[-0.433j, 0.25 ]]
plot_state_city(state)
numpy.arrayLo stato può essere una lista di liste simile a un array, oppure, più comunemente Statevector , oggetti o DensityMatrix ottenuti da un QuantumCircuit:
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)
È possibile trovare esempi di codice per ogni funzione di visualizzazione nella pagina API delle singole funzioni.
Visualizzazioni dei dispositivi
plot_gate_map(backend[, figsize,...] ) | Traccia la mappa dei gate di un dispositivo. |
plot_error_map(backend[, figsize,...] ) | Traccia la mappa degli errori di un determinato backend. |
plot_circuit_layout(circuito, backend[,...] ) | Traccia il layout di un circuito transpilato per un determinato backend di destinazione. |
plot_coupling_map(num_qubit,...[,...] ) | Traccia una mappa di accoppiamento arbitraria di qubit (inserita in un piano). |
Visualizzazioni dei circuiti
circuit_drawer(circuito[, scala, nome file,...] ) | Disegnare il circuito quantistico. |
Visualizzazioni DAG
dag_drawer(dag[, scala, nome file, stile] ) | Tracciare il grafo aciclico diretto (dag) per rappresentare le dipendenze delle operazioni in un circuito quantistico. |
Visualizzazioni Pass Manager
pass_manager_drawer(pass_manager[,...] ) | Disegna il gestore dei passaggi. |
Visualizzazioni della linea temporale
timeline_drawer(programma[, stile,...] ) | Generare dati di visualizzazione per i programmi dei circuiti programmati. |
Visualizzazioni della transizione dello stato di un singolo qubit
visualize_transition(circuito[, traccia,...] ) | Crea un'animazione che mostra le transizioni tra gli stati di un singolo qubit applicando le porte quantistiche. |
Visualizzazioni di array/matrici
array_to_latex(array[, precisione, prefisso,...] ) | Rappresentazione Latex di un array numpy complesso (con dimensione 1 o 2) |
Eccezioni
VisualizationError
exception qiskit.visualization.VisualizationError(*message)
Basi: QiskitError
Per gli errori specifici di visualizzazione.
Impostare il messaggio di errore.