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 プログラムによって描画される内容のソースです。

警告

条件と Expr コンディションと SwitchCaseOp.target フィールドのノードのサポートは予備的なものであり、不完全なものである。 textmpl のドロワーは、データの依存関係を表示するために最善の努力をするが、 LaTeX-based のドロワーは、これらの依存関係を完全にスキップする。

パラメーター

  • circuit (QuantumCircuit) – 可視化する回路。

  • scale (float | None) – 描画する画像のスケール( < 1.0 の場合は縮小)。 mpllatexlatex_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) – True に設定すると、回路を新しいウィンドウで表示します( の場合、これは使用されている matplotlib バックエンドがサポートしているかどうかに依存します)。 mpl textまたは 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 テキスト出力によって生成された線を統合するので、描画の縦方向のスペースが少なくて済む。 デフォルトは mediumtext 出力でのみ使用され、それ以外は無視される。

  • 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 Figure が作成され使用されます。 さらに、指定された場合、冗長であるため、返されるFigureはない。

  • initial_state (bool) – 量子ビットワイヤーの先頭に 0|0\rangle、古典的なワイヤーに 00。 デフォルトはFalseです。

  • cregbundle (bool | None) – True に設定すると、古典的なレジスタを束ねる。 output"text" に設定されている場合を除き、デフォルトは True である。

  • 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 (if output='text')

    アスキーアートとして印刷できるドローイング。

  • matplotlib.figure.Figure (if output='mpl')

    回路図の matplotlib figure オブジェクト。

  • PIL.Image (if output='latex')

    回路図のイメージのメモリ内表現。

  • str (if 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で行ってください。