시각화
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)
베이스: QiskitError
시각화 관련 오류의 경우.
오류 메시지를 설정합니다.