Skip to main content
IBM Quantum Platform

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)

GitHub

양자 회로를 그립니다. 출력 매개변수를 사용하여 그리기 형식을 선택합니다:


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 (결과가 파일에 저장되지 않음)입니다.

  • style (dict |str | 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, 또는 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, 줄의 길이를 설정합니다. 이 기능은 도면이 콘솔에 다 들어가지 않을 때 유용합니다. None(기본값)인 경우, 다음을 사용하여 콘솔 너비를 추측하려고 시도합니다 shutil.get_terminal_size(). 하지만 Jupyter에서 실행할 경우, 기본 줄 길이는 80자로 설정되어 있습니다. 여기서 mpl는 접기 전의 (시각적) 층의 수를 의미합니다. 기본값은 25입니다.

  • ax (Any | None) – Mpl 백엔드에서만 사용됩니다. 시각화 출력에 사용할 matplotlib.axes.Axes 객체(선택 사항)입니다. 아무것도 지정하지 않으면 새 matplotlib 그림이 생성되어 사용됩니다. 또한 지정한 경우 중복되므로 반환되는 그림이 없습니다.

  • initial_state (bool) – 큐비트 선의 시작 부분에 ∣0⟩|0\rangle 를, 고전적 선에는 00 를 추가합니다. 기본값은 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"})
이전 코드에서 출력한 회로도입니다.
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.