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,latex및latex_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) –
True로 설정하면 새 창에 회로가 표시됩니다(mpl의 경우 이를 지원하는 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"(str)입니다. 다른 항목이 제공되면 왼쪽 정당화가 대신 사용됩니다. 옵션이 있는 경우 출력 회로에서 게이트를 배치해야 하는 위치를 나타냅니다.none를 사용하면 각 게이트가 자체 열에 배치됩니다. 기본값은left입니다. -
vertical_compression (str | None) –
high,medium또는low. 텍스트 출력에서 생성된 선을 병합하여 그림의 세로 공간이 줄어들도록 합니다. 기본값은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에서 줄의 길이를 설정합니다. 이 기능은 도면이 콘솔에 맞지 않을 때 유용합니다. 없음(기본값)인 경우shutil.get_terminal_size()을 사용하여 콘솔 너비를 추측하려고 시도합니다. 그러나 주피터에서 실행하는 경우 기본 줄 길이는 80자로 설정됩니다.mpl에서는 접기 전의 (시각적) 레이어 수입니다. 기본값은 25입니다. -
ax (Any | None) – Mpl 백엔드에서만 사용됩니다. 시각화 출력에 사용할
matplotlib.axes.Axes객체(선택 사항)입니다. 아무것도 지정하지 않으면 새 matplotlib 그림이 생성되어 사용됩니다. 또한 지정한 경우 중복되므로 반환되는 그림이 없습니다. -
initial_state (bool) – 큐비트 와이어의 시작 부분에 , 클래식 와이어에 을 추가합니다. 기본값은
False입니다. -
cregbundle (bool | None) –
True로 설정하면 클래식 레지스터를 번들로 묶습니다.output이"text"로 설정된 경우를 제외하고 기본값은True입니다. -
wire_order (list[int] | None) – 비트 표시 순서를 변경하는 데 사용되는 정수 목록입니다. 목록에는 0에서 (
num_qubits+num_clbits) 범위의 비트가 있는 모든 비트에 대한 항목이 있어야 합니다. -
ControlFlowOpexpr_len (int) – 에서 조건으로 가Expr사용될 경우 표시할 문자 수. 이 숫자를 초과할 경우, 문자열은 해당 숫자에서 잘리고 끝에 ‘…’가 추가됩니다. -
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"})