qiskit.visualization.dag_drawer
qiskit.visualization.dag_drawer(dag, scale=0.7, filename=None, style='color')
Trace o gráfico acíclico direcionado (dag) para representar as dependências de operação em um circuito quântico.
Essa função chama a função graphviz_draw() do pacote rustworkx para desenhar o DAG.
Esta função chamará a ferramenta Graphviz do sistema para processar um arquivo que contenha cadeias de caracteres controláveis pelo usuário (como rótulos de operações). Recomenda-se chamar esta função apenas com entradas confiáveis.
Parâmetros
-
dag (DAGCircuit orDAGDependency) – A droga para desenhar.
-
scale (float) – fator de escala
-
filename (str) – caminho do arquivo para salvar a imagem (formato inferido a partir do nome)
-
Nome do estilo, nome do arquivo JSON do estilo ou um dicionário que especifique o estilo.
-
Os nomes de estilo suportados são 'plain': Gráfico B&W, 'color' (padrão):
(nós de entrada/saída/op de cores)
-
Se for fornecido um arquivo JSON, por exemplo
my_style.jsonoumy_style(o.jsonpode 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
None, o estilo padrão"color"é usado ou, se fornecido, o estilo padrãoespecificado em
~/.qiskit/settings.conf.
-
Retorna
se estiver no notebook Jupyter e não estiver salvando em um arquivo,
caso contrário, nenhum.
Tipo de retorno
PIL.Image
Aumentos
- VisualizationError - quando o estilo não é reconhecido.
- InvalidFileError - quando o nome de arquivo fornecido não é válido
- ValueError - Se a extensão do arquivo
filenamenão for um tipo de imagem compatível com o Graphviz.
Exemplo
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.converters import circuit_to_dag
from qiskit.visualization import dag_drawer
q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
with circ.if_test((c, 2)):
circ.rz(0.5, q[1])
dag = circuit_to_dag(circ)
style = {
"inputnodecolor": "pink",
"outputnodecolor": "lightblue",
"opnodecolor": "red",
}
dag_drawer(dag, style=style)