Skip to main content
IBM Quantum Platform

시각화

qiskit.visualization

시각화 모듈에는 측정 결과 수, 양자 상태, 회로, 장치 등을 시각화하는 기능이 포함되어 있습니다.

시각화 기능을 사용하려면 개발 환경에 시각화 옵션을 설치해야 합니다:

pip install 'qiskit[visualization]'
경고

일반적으로 Qiskit의 시각화 도구는 임의의 사용자 입력에 대해 시스템 프로그램을 호출할 수 있으므로, 신뢰할 수 있는 입력에 대해서만 사용해야 합니다. QuantumCircuit.draw()DAGCircuit.draw()Qiskit에서 제공하는 시각화 도구는 대부분 로컬 시각화를 목적으로 하며, 의도적으로 여러 부분에서 사용자 코드를 삽입할 수 있도록 허용합니다. 예를 들어, Graphviz 노드 레이블(예: 레지스터 이름)이나, Qiskit의 latex 모드에서 의 Instruction.label LaTeX 명령어 레이블 등이 이에 해당합니다.


일반적인 키워드 인수

이 모듈의 시각화 함수에 의해 생성된 대부분의 그림은 Matplotlib 에 의해 생성되며 다음과 같은 공통 인수의 하위 집합을 받아들입니다. 정확한 내용은 개별 설명서를 참조하세요.

  • title (str): 플롯 제목에 사용할 텍스트 문자열입니다.
  • legend (list): 데이터의 레이블에 사용할 문자열 목록입니다.
  • figsize (tuple): 그림 크기(인치).
  • color (list): 플로팅을 위한 문자열 목록입니다.
  • ax ( matplotlib.axes.Axes ): 시각화 출력에 사용할 Axes 객체(선택 사항)입니다. 아무것도 지정하지 않으면 새 matplotlib.figure.Figure 가 생성되어 사용됩니다. 또한 지정한 경우 Figure 은 중복되므로 반환되지 않습니다.
  • filename (str): 이미지를 저장할 파일 경로입니다.

다음 예는 이러한 인수의 일반적인 사용법을 보여줍니다:

from qiskit.visualization import plot_histogram

counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}

data = [counts1, counts2]
plot_histogram(data)
이전 코드의 출력입니다.

legend, title, figsize , color 을 지정할 수 있습니다.

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)
이전 코드의 출력입니다.

filename kwarg에 파일 이름을 전달하여 파일에 그림을 저장하거나 matplotlib.figure.Figure.savefig 메서드를 사용합니다.

plot_histogram(data, filename='new_hist.png')

hist = plot_histogram(data)
hist.savefig('new_hist.png')

카운트 시각화

이 섹션에는 측정 결과 수를 시각화하는 함수가 포함되어 있습니다.

plot_histogram(데이터[, 그림 크기, 색상,...] )입력 횟수 데이터의 히스토그램을 그립니다.

사용법 예

다음은 측정 결과의 개수를 시각화하기 위해 를 사용하는 plot_histogram() 예시입니다:

from qiskit.visualization import plot_histogram

counts = {"00": 501, "11": 499}
plot_histogram(counts)
이전 코드의 출력입니다.

get_counts()데이터는 키로 비트열을, 값으로 개수를 갖는 사전일 수도 있고, 더 일반적으로 에서 얻은 객체일 Counts 수도 있습니다.


분포 시각화

이 섹션에는 샘플링된 분포를 시각화하는 함수가 포함되어 있습니다.

plot_distribution(데이터[, 그림 크기, 색상,...] )입력된 샘플링된 데이터에서 분포를 플롯합니다.

상태 시각화

이 섹션에는 양자 상태를 시각화하는 함수가 포함되어 있습니다.

plot_bloch_vector(블로흐[, 제목, 도끼, …] )블로흐 구를 플롯합니다.
plot_bloch_multivector(주[, 제목,...] )각 큐비트에 대해 블로흐 구를 플롯합니다.
plot_state_city(주[, 제목, 그림 크기,...] )양자 상태의 도시 풍경을 플롯합니다.
plot_state_hinton(주[, 제목, 그림 크기,...] )양자 상태의 밀도 행렬에 대한 힌튼 다이어그램을 플롯합니다.
plot_state_paulivec(주[, 제목, 그림 크기,...] )양자 상태의 파울리 벡터 표현을 막대 그래프로 플롯합니다.
plot_state_qsphere(state[, figsize, ax,...] )양자 상태의 큐스피어 표현을 플롯합니다.

사용법 예

다음은 를 plot_state_city() 사용하여 양자 상태를 시각화한 예시입니다:

from qiskit.visualization import plot_state_city

state = [[ 0.75  , 0.433j],
         [-0.433j, 0.25  ]]
plot_state_city(state)
이전 코드의 출력입니다.

QuantumCircuitnumpy.array상태는 배열과 유사한 리스트의 리스트일 수도 있고, 더 일반적으로 Statevector 또는 DensityMatrix 에서 얻은 객체일 수도 있습니다:

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)
이전 코드의 출력입니다.

각 시각화 함수에 대한 코드 예제는 개별 함수 API 페이지에서 찾을 수 있습니다.


기기 시각화

plot_gate_map(백엔드[, 그림 크기,...] )디바이스의 게이트 맵을 표시합니다.
plot_error_map(백엔드[, 그림 크기,...] )지정된 백엔드의 오류 맵을 표시합니다.
plot_circuit_layout(회로, 백엔드[, …] )주어진 대상 백엔드에 대해 트랜스파일된 회로의 레이아웃을 플롯합니다.
plot_coupling_map(num_qubits,...[,...] )큐비트의 임의의 커플링 맵(평면에 내장된)을 플롯합니다.

회로 시각화

circuit_drawer(회로[, 눈금, 파일 이름,...] )양자 회로를 그립니다.

DAG 시각화

dag_drawer(dag[, scale, filename, style] )양자 회로의 연산 종속성을 나타내기 위해 방향 비순환 그래프(dag)를 플롯합니다.

패스 매니저 시각화

pass_manager_drawer(pass_manager[,...] )패스 관리자를 그립니다.

타임라인 시각화

timeline_drawer(프로그램[, 스타일,...] )예약된 회로 프로그램에 대한 시각화 데이터를 생성합니다.

단일 큐비트 상태 전환 시각화

visualize_transition(회로[, 트레이스,...] )양자 게이트를 적용하여 단일 큐비트의 상태 간 전환을 보여주는 애니메이션을 생성합니다.

배열/행렬 시각화

array_to_latex(배열[, 정밀도, 접두사,...] )복잡한 덩어리 배열의 라텍스 표현(차원 1 또는 2 포함)

예외

VisualizationError

exception qiskit.visualization.VisualizationError(*message)

GitHub

베이스: QiskitError

시각화 관련 오류의 경우.

오류 메시지를 설정합니다.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.