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)
양자 회로를 그립니다. 출력 매개변수를 사용하여 그리기 형식을 선택합니다:
text
콘솔에 출력할 수 있는 ASCII 아트 TextDrawing.
mpl
matplotlib을 사용하여 Python 에서 순수하게 색상이 렌더링된 이미지들.
latex
LaTeX 을 통해 수집된 고화질 이미지들.
이 기능은 설계상 임의의 사용자 입력에 대해 설치된 pdflatex 시스템 버전의 를 호출하므로(예: 내에서 사용자 정의 Instruction.label코드를 렌더링하기 위해), 신뢰할 수 있는 데이터에만 사용해야 합니다.
latex_source
LaTeX 의 컴파일되지 않은 원본 출력. 이것이 latex 드로어가 렌더링할 내용의 원본입니다.
조건 및 SwitchCaseOp.target 필드 내 노드에 대한 Expr 지원은 아직 초기 단계이며 불완전합니다. 와 mpl 서랍은 text 데이터 간의 종속성을 표시하기 위해 최선을 다하지만, LaTeX-based 서랍은 이를 완전히 생략합니다.
매개변수
-
circuit (QuantumCircuit) – 시각화할 회로.
-
scale (float | None) – 그릴 이미지의 크기 (축소할 경우
< 1.0).mpl, 및latexlatex_source출력에서만 사용됩니다. 기본값은1.0.입니다. -
filename (str | None) – 이미지를 저장할 파일 경로. 기본값은
None(결과가 파일에 저장되지 않음)입니다. -
스타일 이름, 스타일 JSON 파일의 파일 이름 또는 스타일을 지정하는 사전입니다.
-
지원되는 스타일 이름은
"iqp"(기본값),"iqp-dark","clifford"입니다,"textbook"및"bw". -
JSON 파일이 주어진 경우, 예를 들어
my_style.json또는my_style(.json확장자를 생략할 수 있음), 이 함수는 해당 위치에서 스타일 사전을 로드하려고 시도합니다. JSON 파일은 시각화 사양을 완전히 지정해야 한다는 점에 유의하세요. 파일은 현재 작업 디렉터리인
qiskit/visualization/circuit/styles에서 검색되며~/.qiskit/settings.conf에 지정된 위치에서 검색됩니다. -
사전인 경우 모든 항목이 기본 구성을 재정의합니다. 해당
"name"키가 지정되면, 해당 스타일에 따라 기본 구성이 적용됩니다. 예를 들어,{"name": "textbook", "subfontsize": 5}스타일을"textbook"불러오고 서브 폰트 크기(예: 게이트 각도)를 로 설정합니다5. -
**
None인 경우 기본 스타일"iqp"이 사용되거나 기본 스타일이 지정되어 있는 경우**에 지정된
~/.qiskit/settings.conf.
-
-
output (str | None) – 회로 도면을 그릴 때 사용할 출력 방식을 선택하십시오. 유효한 선택 항목은
text,mpl,latex, 입니다latex_source. 사용자 설정 파일(보통~/.qiskit/settings.conf)에 다른 백엔드가 기본값으로 설정되어 있지 않은 한, 기본적으로text드로어가 사용됩니다. 예를 들어,circuit_drawer = latex입니다. 출력 kwarg가 설정되어 있으면, 사용자 설정 파일에 지정된 기본값 대신 항상 해당 백엔드가 사용됩니다. -
interactive (bool) – 이 값으로 설정하면 회로를 새 창에 표시합니다(이
mpl경우True, 사용 중인 matplotlib 백엔드가 이 기능을 지원하는지에 따라 달라집니다). 텍스트 또는 출력latex_source유형과 함께 사용할 경우, 이 설정은 아무런 영향을 미치지 않으며 아무런 메시지 없이 무시됩니다. 기본값은False.입니다. -
reverse_bits (bool | None) – 이 값으로 설정하면
True, 출력 시각화를 위해 레지스터 내부의 비트 순서를 반전합니다. 사용자 설정 파일(보통~/.qiskit/settings.conf)에 다른 값이 설정되어 있지 않은False한, 기본값은 입니다. 예:circuit_reverse_bits = True. -
plot_barriers (bool) – 출력 회로에서 장벽 그리기 기능을 활성화하거나 비활성화합니다. 기본값은
True.입니다. -
justify (str | None) – 옵션은
"left","right"또는"none"(문자열)입니다. 그 외의 다른 내용이 제공될 경우, 대신 왼쪽 정렬이 사용됩니다. 이는 선택지가 있을 경우 출력 회로에서 게이트를 어디에 배치해야 하는지를 의미합니다.none그 결과 각 게이트가 각각의 열에 배치됩니다. 기본값은left.입니다. -
vertical_compression (str | None) –
high, 또는mediumlow. 텍스트 출력으로 생성된 선들을 병합하여, 그림이 차지하는 세로 공간을 줄여줍니다. 기본값은medium.입니다. 이 옵션은 출력text시에만 사용되며, 그 외의 경우에는 아무런 메시지 없이 무시됩니다. -
idle_wires (bool |str | None) – 출력 시각화에 유휴 전선(회로 소자가 없는 전선)을 포함할지 여부를 설정합니다. 다음과 같은 문자열도 가능합니다
"auto". 이 경우, 회로에 레이아웃이 첨부되어 있다는 점을 제외하면 유휴 선들이 표시됩니다. 사용자 설정 파일(보통~/.qiskit/settings.conf)에 다른 값이 설정되어 있지 않은"auto"한, 기본값은 입니다. 예:circuit_idle_wires = False. -
with_layout (bool) – 물리적 레이아웃에 레이블을 표시하여 레이아웃 정보를 포함합니다. 기본값은
True입니다. -
fold (int | None) – 페이지 나누기를 설정합니다. -1 을 사용하면 이 기능을 비활성화할 수 있습니다. 에서
text, 줄의 길이를 설정합니다. 이 기능은 도면이 콘솔에 다 들어가지 않을 때 유용합니다. None(기본값)인 경우, 다음을 사용하여 콘솔 너비를 추측하려고 시도합니다shutil.get_terminal_size(). 하지만 Jupyter에서 실행할 경우, 기본 줄 길이는 80자로 설정되어 있습니다. 여기서mpl는 접기 전의 (시각적) 층의 수를 의미합니다. 기본값은 25입니다. -
ax (Any | None) – Mpl 백엔드에서만 사용됩니다. 시각화 출력에 사용할
matplotlib.axes.Axes객체(선택 사항)입니다. 아무것도 지정하지 않으면 새 matplotlib 그림이 생성되어 사용됩니다. 또한 지정한 경우 중복되므로 반환되는 그림이 없습니다. -
initial_state (bool) – 큐비트 선의 시작 부분에 를, 고전적 선에는 를 추가합니다. 기본값은
False입니다. -
cregbundle (bool | None) – 이 값으로 설정하면 클래식 레지스터를 묶습니다
True. 기본값은 이며True, 가 로 설정된output경우는 예외입니다"text". -
wire_order (list[int] | None) – 비트의 표시 순서를 재정렬하는 데 사용되는 정수 목록입니다. 이 목록에는 0부터 (
num_qubits+num_clbits)까지의 범위 내 모든 비트에 대한 항목이 포함되어야 합니다. -
expr_len (int) – 에서 조건으로 가 사용될
Expr경우 표시할 문자 수ControlFlowOp. 이 숫자를 초과할 경우, 문자열은 해당 숫자에서 잘리고 끝에 ‘…’가 추가됩니다. -
measure_arrows (bool | None) – True인 경우, 각 마디 상자에서 마디 값이 배치된 클래식 비트나 레지스터까지 화살표를 그립니다. False인 경우 화살표를 그리지 말고, 대신 비트 또는 레지스터의 이름을 측정 상자에 입력합니다. 사용자 설정 파일(보통
~/.qiskit/settings.conf)에 다른 값이 설정되어 있지 않은True한, 기본값은 입니다. 예:circuit_measure_arrows = False. -
barrier_label_len (int) – 출력 회로에서
Barrier레이블에 표시할 문자 수. 이 숫자를 초과할 경우, 문자열은 해당 숫자에서 잘리고 끝에 ‘…’가 추가됩니다.
리턴
TextDrawing 또는 matplotlib.figure 또는 PIL.Image 또는 str:
-
TextDrawing(output='text')아씨 아트로 인쇄할 수 있는 그림입니다.
-
matplotlib.figure.Figure(output='mpl')회로도를 위한 matplotlib 그림 객체입니다.
-
PIL.Image(output='latex')회로도 이미지의 인메모리 표현입니다.
-
str(output='latex_source')회로도를 시각화하기 위한 LaTeX 소스 코드입니다.
레이즈
- VisualizationError – 유효하지 않은 출력 방법이 선택된 경우
- ImportError – 출력 메서드가 설치되지 않은 라이브러리를 필요로 할 때 발생합니다.
예제
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"})