Skip to main content
IBM Quantum Platform

qiskit.visualization.timeline_drawer

qiskit.visualization.timeline_drawer(program, style=None, time_range=None, disable_bits=None, show_clbits=None, idle_wires=None, plot_barriers=None, show_delays=None, show_labels=True, plotter='mpl', axis=None, filename=None, target=None, *, show_idle=None, show_barriers=None)

GitHub

예약된 회로 프로그램에 대한 시각화 데이터를 생성합니다.

버전부터 사용되지 않음 1.3

명령어 지속 시간을 얻으려면 키스킷 2.0 에서 target 파라미터를 지정해야 합니다.

버전부터 사용되지 않음 1.1.0_pending

qiskit.visualization.timeline.interface.draw()의 인수 show_barriers 는 키스킷 1.1.0 에서 사용 중단 대기 중입니다. 향후 릴리스에서 더 이상 사용되지 않는 것으로 표시된 후 릴리스 날짜로부터 3개월 이내에 제거됩니다. 대신 동일하게 작동하는 plot_barriers 인수를 사용합니다.

버전부터 사용되지 않음 1.1.0_pending

qiskit.visualization.timeline.interface.draw()의 인수 show_idle 는 키스킷 1.1.0 에서 사용 중단 대기 중입니다. 향후 릴리스에서 더 이상 사용되지 않는 것으로 표시된 후 릴리스 날짜로부터 3개월 이내에 제거됩니다. 대신 동일하게 작동하는 idle_wires 인수를 사용합니다.

매개변수

  • program (QuantumCircuit) – 시각화 프로그램. 이 프로그램은 스케줄링_메서드를 사용하여 트랜스파일링된 QuantumCircuit 이어야 하며, 따라서 게이트 시간 정보를 포함해야 합니다.

  • style (dict[str, Any] | None) – 스타일시트 옵션. 이는 사전이나 사전 정의된 스타일시트 클래스일 수 있습니다. 사전 설정된 스타일시트에 대한 자세한 내용은, IQXSimple, 및 IQXDebugging``IQXStandard 을 참조하십시오. 구성 키에 대한 자세한 내용은 스타일시트 섹션을 참조하십시오.

  • time_range (tuple[int, int] | None) – 가로축의 범위를 설정합니다.

  • disable_bits (list[Bits] | None) – 출력 이미지에 표시되지 않은 양자 비트(큐비트) 및 고전 비트 목록.

  • show_clbits (bool | None) – 클래식 비트를 표시하는 제어 속성입니다. 클래식 비트를 표시하려면 True로 설정합니다.

  • idle_wires (bool | None) – 유휴 타임라인을 표시하는 컨트롤 속성입니다. 게이트 없이 타임라인을 표시하려면 True로 설정합니다.

  • plot_barriers (bool | None) – 배리어 지침을 표시하는 제어 속성입니다. 차단 지침을 표시하려면 참으로 설정합니다.

  • show_delays (bool | None) – 지연 지침을 표시하는 제어 속성입니다. 지연 지침을 표시하려면 참으로 설정합니다.

  • show_labels (bool) – 게이트의 어노테이션, 즉 이름을 표시하는 컨트롤 속성입니다. 주석을 표시하려면 참으로 설정합니다.

  • plotter (str | None) –

    출력 이미지를 생성할 플로터 API의 이름입니다. 다음 API 중 하나를 지정해야 합니다:

    mpl: Matplotlib API
        Matplotlib API to generate 2D image. Timelines are placed along y axis with
        vertical offset. This API takes matplotlib.axes.Axes as `axis` input.

    축 및 스타일 콰그는 플로터에 따라 달라질 수 있습니다.

  • axis (Any | None) – 플로터에 전달된 임의의 객체입니다. 이 객체가 제공되면 플로터는 내부적으로 그림 객체를 초기화하는 대신 지정된 축을 사용합니다. 이 객체 형식은 플로터에 따라 다릅니다. 자세한 내용은 플로터 섹션을 참조하세요.

  • filename (str | None) – 제공된 경우 출력 이미지가 파일 이름 아래의 파일에 덤프됩니다.

  • target (Target | None) – 타임라인이 생성되는 백엔드의 대상입니다.

  • show_idle (bool | None) – 디펙티드.

  • show_barriers (bool | None) – 디펙티드.

리턴

비주얼리제이션 출력 데이터.

반환되는 데이터 유형은 플로터에 따라 다릅니다. Matplotlib 제품군을 지정하면 matplotlib.pyplot.Figure 데이터가 됩니다. 반환된 데이터는 지정된 플로터 API의.get_image 메서드를 통해 생성됩니다.

레이즈

스타일 딕셔너리 세부 정보

스타일시트 kwarg에는 출력 타임라인 시각화의 스타일을 정의하는 다양한 옵션이 포함되어 있습니다. 스타일시트 옵션은 포맷터, 생성기, 레이아웃으로 분류할 수 있습니다. 스타일시트에서 사용할 수 있는 옵션은 아래에 정의되어 있습니다:

매개변수

  • formatter.general.fig_width - 출력 이미지 너비(기본값 14).

  • formatter.general.fig_unit_height - 타임라인당 출력 이미지의 높이입니다. 모든 타임라인의 합이 출력 이미지의 높이가 됩니다(기본값 0.8 ).

  • formatter.general.dpi - 파일 이름이 설정된 경우 이미지의 인치당 도트 수(기본값 150).

  • formatter.margin.top - 그림 캔버스의 상단 경계에서 첫 번째 시간 슬롯의 영선까지의 여백(기본값 0.5 )입니다.

  • formatter.margin.bottom – 그림 캔버스의 하단 경계에서 마지막 시간 슬롯의 0선까지의 여백(기본값 0.5 ).

  • formatter.margin.left_percent - 그림 캔버스의 왼쪽 경계에서 가로축의 왼쪽 한계까지 여백을 둡니다. 이 값은 전체 프로그램 기간의 백분율 단위로 표시됩니다. 지속 시간이 100이고 0.5 값이 설정되어 있으면 왼쪽 여백이 5로 유지됩니다(기본값 0.02 ).

  • formatter.margin.right_percent - 그림 캔버스의 오른쪽 경계에서 가로축의 오른쪽 한계까지 여백을 둡니다. 이 값은 전체 프로그램 기간의 백분율 단위로 표시됩니다. 지속 시간이 100이고 0.5 값이 설정되어 있으면 오른쪽 여백이 5로 유지됩니다(기본값 0.02 ).

  • formatter.margin.link_interval_percent - 게이트 링크의 중첩이 허용됩니다. 이 범위 내에서 여러 개의 게이트 링크가 그려지는 경우 링크가 서로 겹치지 않도록 수평으로 이동합니다. 이 값은 전체 프로그램 기간의 백분율 단위로 표시됩니다(기본값은 0.01 ).

  • formatter.time_bucket.edge_dt - 게이트 박스의 둥근 가장자리 길이입니다. 게이트 박스는 제로 라인에서 부드럽게 페이드 인 및 페이드 아웃됩니다. 이 값은 시스템 주기 시간 dt(기본값 10) 단위입니다.

  • formatter.margin.minimum_duration - 최소 예약된 서킷 기간. 입력 회로의 지속 시간이 이 값보다 낮으면 이 값을 기준으로 수평 제한이 설정됩니다. 이 값은 시스템 주기 시간 dt(기본값 50) 단위입니다.

  • formatter.color.background - 캔버스의 얼굴 색상의 색상 코드(기본값 #FFFFFF)입니다.

  • formatter.color.timeslot - 시간 슬롯 상자의 얼굴 색상(기본값은 #DDDDDD).

  • formatter.color.gate_name - 게이트 이름 주석의 텍스트 색상(기본값 #000000).

  • formatter.color.bit_name - 비트 레이블 주석의 텍스트 색상(기본값 #000000).

  • formatter.color.barrier - 장벽의 선 색상(기본값 #222222).

  • formatter.color.gates

    출력 시각화의 각 요소 유형에 사용할 게이트 상자 또는 게이트 심볼 색상의 사전입니다. 기본값은 다음과 같습니다.

    {
        'u0': '#FA74A6',
        'u1': '#000000',
        'u2': '#FA74A6',
        'u3': '#FA74A6',
        'id': '#05BAB6',
        'sx': '#FA74A6',
        'sxdg': '#FA74A6',
        'x': '#05BAB6',
        'y': '#05BAB6',
        'z': '#05BAB6',
        'h': '#6FA4FF',
        'cx': '#6FA4FF',
        'cy': '#6FA4FF',
        'cz': '#6FA4FF',
        'swap': '#6FA4FF',
        's': '#6FA4FF',
        'sdg': '#6FA4FF',
        'dcx': '#6FA4FF',
        'iswap': '#6FA4FF',
        't': '#BB8BFF',
        'tdg': '#BB8BFF',
        'r': '#BB8BFF',
        'rx': '#BB8BFF',
        'ry': '#BB8BFF',
        'rz': '#000000',
        'reset': '#808080',
        'measure': '#808080'
    }

    이 기능을 사용하는 경우 필요한 모든 값을 지정해야 합니다. 게이트 이름을 지정하지 않으면 formatter.color.default_gate 의 색상이 적용됩니다.

  • formatter.color.default_gate - 기본 게이트 색상. 이 색상은 시각화할 게이트 이름이 formatter.color.gates (기본값 #BB8BFF )의 사전에 포함되어 있지 않을 때 적용됩니다.

  • formatter.latex_symbol.gates

    출력 시각화에서 각 요소 유형에 사용할 게이트 이름의 라텍스 표현 사전입니다. 기본값은 다음과 같습니다.

    {
        'u0': r'{\rm U}_0',
        'u1': r'{\rm U}_1',
        'u2': r'{\rm U}_2',
        'u3': r'{\rm U}_3',
        'id': r'{\rm Id}',
        'x': r'{\rm X}',
        'y': r'{\rm Y}',
        'z': r'{\rm Z}',
        'h': r'{\rm H}',
        'cx': r'{\rm CX}',
        'cy': r'{\rm CY}',
        'cz': r'{\rm CZ}',
        'swap': r'{\rm SWAP}',
        's': r'{\rm S}',
        'sdg': r'{\rm S}^\dagger',
        'sx': r'{\rm √X}',
        'sxdg': r'{\rm √X}^\dagger',
        'dcx': r'{\rm DCX}',
        'iswap': r'{\rm iSWAP}',
        't': r'{\rm T}',
        'tdg': r'{\rm T}^\dagger',
        'r': r'{\rm R}',
        'rx': r'{\rm R}_x',
        'ry': r'{\rm R}_y',
        'rz': r'{\rm R}_z',
        'reset': r'|0\rangle',
        'measure': r'{\rm Measure}'
    }

    이 기능을 사용하는 경우 필요한 모든 값을 지정해야 합니다. 불완전한 딕셔너리를 전달할 수 있는 규정은 없습니다.

  • formatter.latex_symbol.frame_change - 프레임 변경 기호의 라텍스 표현(기본값은 r'동그라미 왼쪽').

  • formatter.unicode_symbol.frame_change - 프레임 변경 기호의 유니코드 표현(기본값 u’u21BA’ ).

  • formatter.box_height.gate - 게이트 상자 높이(기본값 0.5 ).

  • formatter.box_height.timeslot - 시간 슬롯의 높이(기본값 0.6 ).

  • formatter.layer.gate - 게이트 박스의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 3).

  • formatter.layer.timeslot - 시간 슬롯의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 0).

  • formatter.layer.gate_name - 게이트 이름 주석의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 5).

  • formatter.layer.bit_name - 비트 레이블의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 5).

  • formatter.layer.frame_change - 프레임 변경 기호의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 4).

  • formatter.layer.barrier - 배리어 라인의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 1).

  • formatter.layer.gate_link - 게이트 링크 라인의 레이어 인덱스입니다. 숫자가 클수록 출력 이미지 앞쪽에 표시됩니다(기본값은 2).

  • formatter.alpha.gate - 게이트 박스의 투명성. 0에서 1 범위의 값입니다. 값 0은 완전히 투명한 상자를 제공합니다(기본값 1.0 ).

  • formatter.alpha.timeslot - 시간 슬롯의 투명성. 0에서 1 범위의 값입니다. 값 0은 완전히 투명한 상자를 제공합니다(기본값 0.7 ).

  • formatter.alpha.barrier - 장벽 라인의 투명성. 0에서 1 범위의 값입니다. 값 0은 완전히 투명한 선을 제공합니다(기본값 0.5 ).

  • formatter.alpha.gate_link - 게이트 링크 라인의 투명성. 0에서 1 범위의 값입니다. 값 0은 완전히 투명한 선을 제공합니다(기본값 0.8 ).

  • formatter.line_width.gate - 게이트 상자 테두리의 선 너비(기본값 0).

  • formatter.line_width.timeslot - 시간 슬롯 테두리의 선 너비(기본값 0).

  • formatter.line_width.barrier - 차단선의 선 너비(기본값 3).

  • formatter.line_width.gate_link - 게이트 링크의 선 너비(기본값 3).

  • formatter.line_style.barrier - 배리어 라인의 라인 스타일. 이는 matplotlib의 줄 스타일 사양(기본값 '-')을 준수합니다.

  • formatter.line_style.gate_link - 게이트 링크 라인의 라인 스타일. 이는 matplotlib의 줄 스타일 사양(기본값 '-')을 준수합니다.

  • formatter.text_size.gate_name - 게이트 이름 주석의 텍스트 크기(기본값 12).

  • formatter.text_size.bit_name - 비트 레이블의 텍스트 크기(기본값 15).

  • formatter.text_size.frame_change - 프레임 변경 기호의 텍스트 크기(기본값 18).

  • formatter.text_size.axis_label - 축 레이블의 텍스트 크기(기본값 13).

  • formatter.label_offset.frame_change - 제로 기간 게이트 이름 주석을 제로 시간 슬롯의 제로 라인에서 오프셋합니다(기본값 0.25 ).

  • formatter.control.show_idle - 게이트 없이 시간 슬롯을 표시하려면 참으로 설정합니다(기본값은 참).

  • formatter.control.show_clbits - 클래식 비트의 시간 슬롯을 표시하려면 참으로 설정합니다(기본값은 참).

  • formatter.control.show_barriers - 장벽을 표시하려면 참으로 설정합니다(기본값은 참).

  • formatter.control.show_delays - 지연 상자를 표시하려면 참으로 설정합니다(기본값은 참).

  • generator.gates - 게이트에 대한 도면을 생성하는 콜백 함수 목록입니다. 제너레이터 형식을 충족하는 임의의 콜백 함수를 여기에서 설정할 수 있습니다. 타임라인 서랍에는 몇 가지 기본 생성기가 있습니다. 자세한 내용은 generators 을 참조하세요. 기본 생성기가 설정되어 있지 않습니다(기본값 []).

  • generator.bits - 비트 레이블 및 시간 슬롯에 대한 도면을 생성하는 콜백 함수 목록입니다. 제너레이터 형식을 충족하는 임의의 콜백 함수를 여기에서 설정할 수 있습니다. 타임라인 서랍에는 몇 가지 기본 생성기가 있습니다. 자세한 내용은 generators 을 참조하세요. 기본 생성기가 설정되어 있지 않습니다(기본값 []).

  • generator.barriers - 장벽에 대한 도면을 생성하는 콜백 함수 목록입니다. 제너레이터 형식을 충족하는 임의의 콜백 함수를 여기에서 설정할 수 있습니다. 타임라인 서랍에는 몇 가지 기본 생성기가 있습니다. 자세한 내용은 generators 을 참조하세요. 기본 생성기가 설정되어 있지 않습니다(기본값 []).

  • generator.gate_links - 게이트 링크에 대한 도면을 생성하는 콜백 함수 목록입니다. 제너레이터 형식을 충족하는 임의의 콜백 함수를 여기에서 설정할 수 있습니다. 타임라인 서랍에는 몇 가지 기본 생성기가 있습니다. 자세한 내용은 generators 을 참조하세요. 기본 생성기가 설정되어 있지 않습니다(기본값 []).

  • layout.bit_arrange - 비트를 정렬하는 콜백 함수입니다. 자세한 내용은 layouts 을 참조하세요. 기본 레이아웃이 설정되어 있지 않습니다. (기본값 없음).

  • layout.time_axis_map - 가로축 레이블의 레이아웃을 결정하는 콜백 함수입니다. 자세한 내용은 layouts 을 참조하세요. 기본 레이아웃이 설정되어 있지 않습니다. (기본값 없음).

  • program (QuantumCircuit)

  • style (dict[str, Any] | None)

  • time_range (tuple[int, int] | None)

  • disable_bits (list[Bits] | None)

  • show_clbits (bool | None)

  • idle_wires (bool | None)

  • plot_barriers (bool | None)

  • show_delays (bool | None)

  • show_labels (bool)

  • plotter (str | None)

  • axis (Any | None)

  • filename (str | None)

  • target (Target | None)

  • show_idle (bool | None)

  • show_barriers (bool | None)

예제

예약된 회로 프로그램을 시각화하려면 제어 인수 집합을 사용하여 이 함수를 호출할 수 있습니다. 출력 이미지의 대부분의 모양은 스타일시트로 제어할 수 있습니다.

기본 스타일시트를 사용하여 그리기.

from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw
from qiskit.providers.fake_provider import GenericBackendV2

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)

backend = GenericBackendV2(5)

qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, target=backend.target)
이전 코드의 출력입니다.

간단한 스타일시트로 그리기.

from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw, IQXSimple
from qiskit.providers.fake_provider import GenericBackendV2

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)

backend = GenericBackendV2(5)

qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, style=IQXSimple(), target=backend.target)
이전 코드의 출력입니다.

프로그램 디버깅에 적합한 스타일시트로 그리기.

from qiskit import QuantumCircuit, transpile
from qiskit.visualization.timeline import draw, IQXDebugging
from qiskit.providers.fake_provider import GenericBackendV2

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)

backend = GenericBackendV2(5)
qc = transpile(qc, backend, scheduling_method='alap', layout_method='trivial')
draw(qc, style=IQXDebugging(), target=backend.target)
이전 코드의 출력입니다.

사전 설정 스타일시트를 호출할 때 부분적으로 사용자 지정할 수 있습니다:

my_style = {
    'formatter.general.fig_width': 16,
    'formatter.general.fig_unit_height': 1
}
style = IQXStandard(**my_style)

# draw
draw(qc, style=style)

위와 같은 방법으로 사용자 정의 생성기 또는 레이아웃 함수를 생성하고 사용자 정의 함수로 기존 스타일시트를 업데이트할 수 있습니다. 이 기능을 사용하면 예약된 회로 서랍의 코드베이스를 수정하지 않고도 출력 이미지의 모양을 대부분 제어할 수 있습니다.

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