Visualizações
qiskit.visualization
O módulo de visualização contém funções que visualizam contagens de resultados de medição, estados quânticos, circuitos, dispositivos e muito mais.
Para usar as funções de visualização, é necessário instalar as opções de visualização em seu ambiente de desenvolvimento:
pip install 'qiskit[visualization]'De modo geral, as ferramentas de visualização do Qiskit podem chamar programas do sistema a partir de entradas arbitrárias do usuário e devem ser utilizadas apenas com entradas confiáveis. As ferramentas de visualização fornecidas pelo Qiskit destinam-se principalmente à visualização local e permitem, de forma deliberada, a inserção de código pelo usuário em vários pontos, como rótulos de nós do Graphviz — por DAGCircuit.draw()exemplo, nomes de registros — ou rótulos de Instruction.label instruções do LaTeX no modo latex do QuantumCircuit.draw().
Argumentos comuns de palavras-chave
Muitas das figuras criadas pelas funções de visualização neste módulo são criadas por Matplotlib e aceitam um subconjunto dos seguintes argumentos comuns. Consulte a documentação individual para obter detalhes exatos.
title(str): uma cadeia de texto a ser usada para o título do enredo.legend(list): uma lista de cadeias de caracteres a serem usadas para os rótulos dos dados.figsize(tuple): tamanho da figura em polegadas.color(list): uma lista de cadeias de caracteres para plotagem.ax( matplotlib.axes.Axes ): Um objetoAxesopcional a ser usado para a saída da visualização. Se nenhum for especificado, um novo matplotlib.figure.Figure será criado e usado. Além disso, se especificado, não será retornado o endereçoFigure, pois ele é redundante.filename(str): caminho do arquivo para salvar a imagem.
O exemplo a seguir demonstra o uso comum desses argumentos:
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
plot_histogram(data)
Você pode especificar legend, title, figsize e color passando para os 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)
Você pode salvar a figura em um arquivo passando o nome do arquivo para filename kwarg ou usando o método matplotlib.figure.Figure.savefig method.
plot_histogram(data, filename='new_hist.png')
hist = plot_histogram(data)
hist.savefig('new_hist.png')Contagens Visualizações
Esta seção contém funções que visualizam contagens de resultados de medição.
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
plot_histogram(dados[, tamanho da figura, cor,...] ) | Traçar um histograma dos dados de contagem de entrada. |
Uso de Exemplo
Aqui está um exemplo de como usar plot_histogram() para visualizar as contagens dos resultados das medições:
from qiskit.visualization import plot_histogram
counts = {"00": 501, "11": 499}
plot_histogram(counts)
Os dados podem ser um dicionário com uma sequência de bits como chave e contagens como valor, ou, mais comumente, um Counts objeto obtido de get_counts().
Visualizações de distribuição
Esta seção contém funções que visualizam distribuições amostradas.
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
plot_distribution(dados[, tamanho da figura, cor,...] ) | Traçar uma distribuição a partir de dados amostrados de entrada. |
Visualizações do estado
Esta seção contém funções que visualizam estados quânticos.
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
plot_bloch_vector(Bloch[, título, machado,...] ) | Trace a esfera de Bloch. |
plot_bloch_multivector(estado[, título,...] ) | Trace uma esfera de Bloch para cada qubit. |
plot_state_city(estado[, título, tamanho da figura,...] ) | Trace a paisagem urbana do estado quântico. |
plot_state_hinton(estado[, título, tamanho da figura,...] ) | Trace um diagrama de Hinton para a matriz de densidade de um estado quântico. |
plot_state_paulivec(estado[, título, tamanho da figura,...] ) | Trace a representação do vetor de Pauli de um estado quântico como um gráfico de barras. |
plot_state_qsphere(estado[, tamanho da figura, eixo,...] ) | Trace a representação qsphere de um estado quântico. |
Uso de Exemplo
Aqui está um exemplo de como usar plot_state_city() para visualizar um estado quântico:
from qiskit.visualization import plot_state_city
state = [[ 0.75 , 0.433j],
[-0.433j, 0.25 ]]
plot_state_city(state)
O estado pode ser uma lista de listas semelhante a um array, numpy.array ou, mais comumente Statevector , DensityMatrix objetos obtidos a partir de um 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)
Você pode encontrar exemplos de código para cada função de visualização na página da API de função individual.
Visualizações do dispositivo
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
plot_gate_map(backend[, figsize,...] ) | Plota o mapa de portas de um dispositivo. |
plot_error_map(backend[, figsize,...] ) | Plota o mapa de erros de um determinado backend. |
plot_circuit_layout(circuito, backend[,...] ) | Traçar o layout de um circuito transpilado para um determinado backend de destino. |
plot_coupling_map(num_qubits,...[,...] ) | Plota um mapa de acoplamento arbitrário de qubits (incorporado em um plano). |
Visualizações de circuitos
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
circuit_drawer(circuito[, escala, nome do arquivo,...] ) | Desenhe o circuito quântico. |
Visualizações DAG
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
dag_drawer(dia[, escala, nome do arquivo, estilo] ) | Trace o gráfico acíclico direcionado (dag) para representar as dependências de operação em um circuito quântico. |
Visualizações do Gerenciador de Senhas
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
pass_manager_drawer(pass_manager[,...] ) | Desenha o gerenciador de passes. |
Visualizações da linha do tempo
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
timeline_drawer(programa[, estilo,...] ) | Gerar dados de visualização para programas de circuitos programados. |
Visualizações de transição de estado de qubit único
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
visualize_transition(circuito[, traço,...] ) | Cria uma animação que mostra as transições entre os estados de um único qubit aplicando portas quânticas. |
Visualizações de matrizes/matrizes
Coluna “ 1 ” | Coluna “ 2 ” |
|---|---|
array_to_latex(matriz[, precisão, prefixo,...] ) | Representação em látex de uma matriz numérica complexa (com dimensão 1 ou 2) |
Exceções
VisualizationError
exception qiskit.visualization.VisualizationError(*message)
Bases: QiskitError
Para erros específicos de visualização.
Defina a mensagem de erro.