Skip to main content
IBM Quantum Platform

qiskit.visualization.circuit_drawer

qiskit.visualization.circuit_drawer(circuit, scale=None, filename=None, style=None, output=None, interactive=False, plot_barriers=True, reverse_bits=None, justify=None, vertical_compression='medium', idle_wires=None, with_layout=True, fold=None, ax=None, initial_state=False, cregbundle=None, wire_order=None, expr_len=30, measure_arrows=None, barrier_label_len=16)

GitHub

Desenhe o circuito quântico. Use o parâmetro de saída para escolher o formato de desenho:


text

Arte ASCII TextDrawing que pode ser exibida no console.


mpl

Imagens com cores geradas inteiramente em Python usando o matplotlib.


latex

Imagens de alta qualidade compiladas a partir do site LaTeX.

Aviso

Por padrão, isso chamará uma versão do sistema instalada pdflatex com base em qualquer entrada do usuário (por exemplo, para executar código Instruction.label personalizado), portanto, só deve ser usado com dados confiáveis.


latex_source

Saída bruta e não compilada do LaTeX. Esta é a fonte do que seria renderizado pelo latex desenhador.

Aviso

O suporte para Expr nós em condições e campos SwitchCaseOp.target é preliminar e incompleto. As gavetas text e mpl farão o melhor esforço possível para mostrar as dependências de dados, mas as gavetas LaTeX-based as ignorarão completamente.

Parâmetros

  • circuit (QuantumCircuit) – O circuito a ser visualizado.

  • scale (float | None) – Escala da imagem a ser desenhada (reduzir se < 1.0). Usado somente pelas saídas mpl, latex e latex_source . O padrão é 1.0.

  • filename (str | None) – Caminho do arquivo para salvar a imagem. O padrão é None (o resultado não é salvo em um arquivo).

  • style (dict |str | None) –

    Nome do estilo, nome do arquivo JSON do estilo ou um dicionário que especifique o estilo.

    • Os nomes de estilo compatíveis são "iqp" (padrão), "iqp-dark", "clifford",

      "textbook" e "bw".

    • Se for fornecido um arquivo JSON, por exemplo my_style.json ou my_style (o .json

      pode ser omitida), essa função tenta carregar o dicionário de estilos a partir desse local. Observe que o arquivo JSON deve especificar completamente as especificações de visualização. O arquivo é pesquisado em qiskit/visualization/circuit/styles, no diretório de trabalho atual e no local especificado em ~/.qiskit/settings.conf.

    • Se for um dicionário, cada entrada substitui a configuração padrão. Caso o comando

      "name" Se a chave for fornecida, a configuração padrão é determinada por esse estilo. Por exemplo, {"name": "textbook", "subfontsize": 5} carrega o "textbook" estilo e define o tamanho da subfonte (por exemplo, os ângulos das portas) para 5.

    • Se None , o estilo padrão "iqp" é usado ou, se fornecido, o estilo padrão

      especificado em ~/.qiskit/settings.conf.

  • output (str | None) – Selecione o método de saída a ser usado para desenhar o circuito. As opções válidas são text, mpl, latex, latex_source. Por padrão, a gaveta text é usada, a menos que o arquivo de configuração do usuário (geralmente ~/.qiskit/settings.conf) tenha um backend alternativo definido como padrão. Por exemplo, circuit_drawer = latex. Se o kwarg de saída for definido, esse backend sempre será usado em vez do padrão no arquivo de configuração do usuário.

  • interactive (bool) – Quando definido como True, mostre o circuito em uma nova janela (para mpl , isso depende do suporte do backend do matplotlib que está sendo usado). Observe que, quando usado com o tipo de saída texto ou latex_source , isso não tem efeito e será silenciosamente ignorado. O padrão é False.

  • reverse_bits (bool | None) – Quando definido como True, inverta a ordem dos bits dentro dos registros para a visualização da saída. O padrão é False , a menos que o arquivo de configuração do usuário (geralmente ~/.qiskit/settings.conf) tenha um valor alternativo definido. Por exemplo, circuit_reverse_bits = True.

  • plot_barriers (bool) – Ativar/desativar barreiras de desenho no circuito de saída. Padroniza para True.

  • justify (str | None) – As opções são "left", "right" ou "none" (str). Se qualquer outra coisa for fornecida, será usado o justificado à esquerda. Refere-se ao local onde as portas devem ser colocadas no circuito de saída, se houver uma opção. none faz com que cada porta seja colocada em sua própria coluna. O padrão é left.

  • vertical_compression (str | None) – high, medium ou low. Ele mescla as linhas geradas pela saída de texto para que o desenho ocupe menos espaço vertical. O padrão é medium. Usado somente pela saída text ; caso contrário, será silenciosamente ignorado.

  • idle_wires (bool |str | None) – Incluir (ou não) fios ociosos (fios sem elementos de circuito) na visualização da saída. A string "auto" também é possível e, nesse caso, os fios ociosos são exibidos, exceto pelo fato de o circuito ter um layout anexado. O padrão é "auto" , a menos que o arquivo de configuração do usuário (geralmente ~/.qiskit/settings.conf) tenha um valor alternativo definido. Por exemplo, circuit_idle_wires = False.

  • with_layout (bool) – Inclua informações de layout, com rótulos no layout físico. O padrão é True.

  • fold (int | None) – Define a paginação. Ele pode ser desativado usando -1. Em text, define o comprimento das linhas. Isso é útil quando o desenho não cabe no console. Se for None (padrão), ele tentará adivinhar a largura do console usando shutil.get_terminal_size(). No entanto, se estiver sendo executado no jupyter, o comprimento de linha padrão é definido como 80 caracteres. Em mpl, é o número de camadas (visuais) antes da dobragem. O padrão é 25.

  • ax (Any | None) – Usado apenas pelo backend do mpl. Um objeto matplotlib.axes.Axes opcional a ser usado para a saída da visualização. Se nenhum for especificado, um novo matplotlib Figure será criado e usado. Além disso, se especificado, não haverá nenhuma figura retornada, pois ela é redundante.

  • initial_state (bool) – Adiciona 0|0\rangle no início dos fios do qubit e 00 aos fios clássicos. O padrão é False.

  • cregbundle (bool | None) – Se definido como True, agrupa os registros clássicos. O padrão é True, exceto quando output é definido como "text".

  • wire_order (list[int] | None) – Uma lista de números inteiros usados para reordenar a exibição dos bits. A lista deve ter uma entrada para cada bit com os bits no intervalo de 0 a (num_qubits + num_clbits).

  • expr_len (int) – O número de caracteres a serem exibidos se um Expr for usado para a condição em um ControlFlowOp. Se esse número for excedido, a cadeia de caracteres será truncada nesse número e '...' será adicionado ao final.

  • measure_arrows (bool | None) – Se for verdadeiro, desenhe uma seta a partir de cada caixa de medida até o bit ou registro clássico onde o valor da medida está localizado. Se for False, não desenhe a seta, mas coloque o nome do bit ou do registro na caixa de medida. O valor padrão é, a menos True que o arquivo de configuração do usuário (geralmente ~/.qiskit/settings.conf) tenha um valor alternativo definido. Por exemplo, circuit_measure_arrows = False.

  • barrier_label_len (int) – O número de caracteres a serem exibidos para Barrier os rótulos no circuito de saída. Se esse número for excedido, a sequência de caracteres será truncada nesse ponto e “...” será adicionado ao final.

Retorna

TextDrawing ou matplotlib.figure ou PIL.Image ou str:

  • TextDrawing (se output='text')

    Um desenho que pode ser impresso como arte ascii.

  • matplotlib.figure.Figure (se output='mpl')

    Um objeto de figura matplotlib para o diagrama de circuito.

  • PIL.Image (if output='latex')

    Uma representação na memória da imagem do diagrama do circuito.

  • str (se output='latex_source')

    O código-fonte LaTeX para visualizar o diagrama do circuito.

Aumentos

  • VisualizationError - quando um método de saída inválido é selecionado
  • ImportError - quando os métodos de saída exigirem bibliotecas não instaladas.

Exemplo

from qiskit import QuantumCircuit
from qiskit.visualization import circuit_drawer
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.measure(0, 0)
circuit_drawer(qc, output="mpl", style={"backgroundcolor": "#EEEEEE"})
Diagrama de circuito gerado pelo código anterior.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.