Visualizaciones
qiskit.visualization
El módulo de visualización contiene funciones que visualizan recuentos de resultados de medición, estados cuánticos, circuitos, dispositivos y mucho más.
Para utilizar las funciones de visualización, es necesario instalar opciones de visualización en el entorno de desarrollo:
pip install 'qiskit[visualization]'En general, las herramientas de visualización de Qiskit pueden ejecutar programas del sistema a partir de entradas arbitrarias del usuario, por lo que solo deben utilizarse con entradas fiables. Las herramientas de visualización que ofrece Qiskit están pensadas principalmente para la visualización local y permiten deliberadamente la inserción de código de usuario en varios lugares, como las etiquetas de nodos de Graphviz (por ejemplo, los nombres de registros en DAGCircuit.draw()) o las etiquetas de instrucciones de « LaTeX » de Instruction.label en el latex modo de QuantumCircuit.draw().
Argumentos comunes sobre palabras clave
Muchas de las figuras creadas por las funciones de visualización en este módulo son creadas por Matplotlib y aceptan un subconjunto de los siguientes argumentos comunes. Consulte la documentación individual para conocer los detalles exactos.
title(str): una cadena de texto para el título de la trama.legend(list): una lista de cadenas que se utilizarán para las etiquetas de los datos.figsize(tuple): tamaño de la figura en pulgadas.color(list): una lista de cadenas para trazar.ax( matplotlib.axes.Axes ): Un objeto opcionalAxesque se utilizará para la salida de visualización. Si no se especifica ninguno, se creará y utilizará un nuevo matplotlib.figure.Figure será creado y utilizado. Además, si se especifica no se devolveráFigureya que es redundante.filename(str): ruta de archivo donde guardar la imagen.
El siguiente ejemplo muestra el uso habitual de estos argumentos:
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
plot_histogram(data)
Puede especificar legend, title, figsize y color pasando a los kwargs.
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)
Puede guardar la figura en un archivo pasando el nombre del archivo a filename kwarg o utilizando el método matplotlib.figure.Figure.savefig método.
plot_histogram(data, filename='new_hist.png')
hist = plot_histogram(data)
hist.savefig('new_hist.png')Visualizaciones de recuentos
Esta sección contiene funciones que visualizan los recuentos de los resultados de las mediciones.
plot_histogram(data[, figsize, color,...] ) | Trazar un histograma de los datos de recuento de entrada. |
Uso de ejemplo
He aquí un ejemplo de uso de plot_histogram() para visualizar los recuentos de los resultados de las mediciones:
from qiskit.visualization import plot_histogram
counts = {"00": 501, "11": 499}
plot_histogram(counts)
Los datos pueden ser un diccionario con cadena de bits como clave y cuentas como valor, o más comúnmente un Counts obtenido a partir de get_counts().
Visualizaciones de distribución
Esta sección contiene funciones que visualizan distribuciones muestreadas.
plot_distribution(data[, figsize, color,...] ) | Trazar una distribución a partir de datos muestreados de entrada. |
Visualizaciones estatales
Esta sección contiene funciones que visualizan estados cuánticos.
plot_bloch_vector(bloch[, título, ax,...] ) | Traza la esfera de Bloch. |
plot_bloch_multivector(estado[, título,...] ) | Traza una esfera de Bloch para cada qubit. |
plot_state_city(estado[, título, tamaño de la figura,...] ) | Traza el paisaje urbano del estado cuántico. |
plot_state_hinton(estado[, título, tamaño de la figura,...] ) | Traza un diagrama de Hinton para la matriz de densidad de un estado cuántico. |
plot_state_paulivec(estado[, título, tamaño de la figura,...] ) | Representar el vector Pauli de un estado cuántico en forma de gráfico de barras. |
plot_state_qsphere(state[, figsize, ax,...] ) | Trazar la representación qsphere de un estado cuántico. |
Uso de ejemplo
He aquí un ejemplo del uso de plot_state_city() para visualizar un estado cuántico:
from qiskit.visualization import plot_state_city
state = [[ 0.75 , 0.433j],
[-0.433j, 0.25 ]]
plot_state_city(state)
El estado puede ser una lista de listas tipo array, numpy.array, o más comúnmente Statevector o DensityMatrix objetos obtenidos a partir de 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)
Puede encontrar ejemplos de código para cada función de visualización en la página API de cada función.
Visualizaciones de dispositivos
plot_gate_map(backend[, figsize,...] ) | Traza el mapa de puertas de un dispositivo. |
plot_error_map(backend[, figsize,...] ) | Traza el mapa de errores de un backend dado. |
plot_circuit_layout(circuito, backend[,...] ) | Trazar la disposición de un circuito transpilado para un determinado backend de destino. |
plot_coupling_map(num_qubits,...[,...] ) | Traza un mapa de acoplamiento arbitrario de qubits (incrustado en un plano). |
Visualizaciones de circuitos
circuit_drawer(circuito[, escala, nombre de archivo,...] ) | Dibuja el circuito cuántico. |
Visualizaciones DAG
dag_drawer(dag[, escala, nombre de archivo, estilo] ) | Trazar el grafo acíclico dirigido (dag) para representar las dependencias de las operaciones en un circuito cuántico. |
Visualizaciones del administrador de contraseñas
pass_manager_drawer(pass_manager[,...] ) | Dibuja el gestor de pases. |
Visualizaciones de líneas de tiempo
timeline_drawer(programa[, estilo,...] ) | Generar datos de visualización para programas de circuitos programados. |
Visualizaciones de transiciones de estados de un solo qubit
visualize_transition(circuito[, traza,...] ) | Crea una animación que muestre las transiciones entre estados de un único qubit aplicando puertas cuánticas. |
Visualizaciones de matrices/matrices
array_to_latex(matriz[, precisión, prefijo,...] ) | Representación en Latex de una matriz numpy compleja (con dimensión 1 ó 2) |
Excepciones
VisualizationError
exception qiskit.visualization.VisualizationError(*message)
Bases: QiskitError
Para errores específicos de visualización.
Configura el mensaje de error.