視覚化
qiskit.visualization
可視化モジュールには、測定結果のカウント、量子状態、回路、デバイスなどを可視化する機能が含まれている。
可視化機能を使用するには、開発環境に可視化オプションをインストールする必要があります:
pip install 'qiskit[visualization]'一般的に、Qiskit の可視化ツールは、任意のユーザー入力に対してシステムプログラムを呼び出す可能性があるため、信頼できる入力に対してのみ使用すべきです。 QuantumCircuit.draw()DAGCircuit.draw()Qiskit に搭載されている可視化ツールは、主にローカルでの可視化を目的としており、意図的にいくつかの箇所でユーザーコードの挿入が可能になっています。例えば、Graphviz のノードラベル(レジスタ名など)や、 LaTeX の命令ラベル( Instruction.label モード latex の)などが挙げられます。
一般的なキーワード引数
このモジュールの可視化関数によって作成される図形の多くは Matplotlib で作成され、以下の共通引数のサブセットを受け入れます。 正確な詳細については、各書類を参照のこと。
title(str): プロットタイトルに使用するテキスト文字列。legend(list): データのラベルに使用する文字列のリスト。figsize(tuple): フィギュアのサイズ(インチ).color(list): プロットする文字列のリスト。ax( matplotlib.axes.Axes ):可視化出力に使用するAxesオブジェクト(オプション)。 指定がない場合は、新しい matplotlib.figure.Figure が作成され使用される。 また、冗長であるため、指定された場合、返されるFigure。filename(str): 画像を保存するファイルパス。
以下の例は、これらの引数の一般的な使い方を示している:
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
plot_histogram(data)
kwargsに渡すことで、 legend、 title、 figsize 、 color を指定できる。
from qiskit.visualization import plot_histogram
counts1 = {'00': 499, '11': 501}
counts2 = {'00': 511, '11': 489}
data = [counts1, counts2]
legend = ['First execution', 'Second execution']
title = 'New histogram'
figsize = (10,10)
color=['crimson','midnightblue']
plot_histogram(data, legend=legend, title=title, figsize=figsize, color=color)
図をファイルに保存するには、 filename kwarg にファイル名を渡すか、または matplotlib.figure.Figure.savefig メソッドを使うこともできます。
plot_histogram(data, filename='new_hist.png')
hist = plot_histogram(data)
hist.savefig('new_hist.png')カウントの可視化
このセクションには、測定結果のカウントを視覚化する関数が含まれています。
plot_histogram(データ[, 図のサイズ, 色,...] ) | 入力カウントデータのヒストグラムをプロットする。 |
使用例
以下は、測定結果の件数を可視化するために を使用 plot_histogram() する例です:
from qiskit.visualization import plot_histogram
counts = {"00": 501, "11": 499}
plot_histogram(counts)
get_counts()データは、キーとしてビット列、値としてカウント数を持ち、辞書形式のものもあれば、より一般的には から取得したオブジェクトである Counts 場合もあります。
分布の可視化
このセクションでは、サンプリングされた分布を可視化する関数を紹介します。
plot_distribution(データ[, 図のサイズ, 色,...] ) | 入力されたサンプリングデータから分布をプロットする。 |
状態の可視化
このセクションでは、量子状態を可視化する関数を紹介します。
plot_bloch_vector(ブロッホ[、タイトル、斧、……] ) | ブロッホ球をプロットする。 |
plot_bloch_multivector(州[、役職名、……] ) | それぞれの量子ビットのブロッホ球をプロットする。 |
plot_state_city(状態[、タイトル、図のサイズ、……] ) | 量子状態の街並みをプロットする。 |
plot_state_hinton(状態[、タイトル、図のサイズ、……] ) | 量子状態の密度行列のヒントン図を描く。 |
plot_state_paulivec(状態[、タイトル、図のサイズ、……] ) | 量子状態のパウリベクトル表現を棒グラフとしてプロットする。 |
plot_state_qsphere(state[, figsize, ax,...] ) | 量子状態のqsphere表現をプロットする。 |
使用例
以下は、量子状態を可視化するために を使用 plot_state_city() する例です:
from qiskit.visualization import plot_state_city
state = [[ 0.75 , 0.433j],
[-0.433j, 0.25 ]]
plot_state_city(state)
QuantumCircuitnumpy.array状態は、配列のようなリストのリスト、あるいは、より一般 Statevector 的には、から取得された または DensityMatrix オブジェクトである可能性があります:
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_state_city
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
# plot using a Statevector
state = Statevector(qc)
plot_state_city(state)
from qiskit import QuantumCircuit
from qiskit.quantum_info import DensityMatrix
from qiskit.visualization import plot_state_city
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
# plot using a DensityMatrix
state = DensityMatrix(qc)
plot_state_city(state)
各可視化関数のコード例は、各関数の API ページにあります。
デバイス可視化
plot_gate_map(バックエンド[、図のサイズ、……] ) | デバイスのゲートマップをプロットする。 |
plot_error_map(バックエンド[、図のサイズ、……] ) | 指定したバックエンドのエラーマップをプロットします。 |
plot_circuit_layout(回路、バックエンド[、……] ) | 指定されたターゲットバックエンド用にトランスパイルされた回路のレイアウトをプロットする。 |
plot_coupling_map(num_qubits,...[,...] ) | 平面上に埋め込まれた)量子ビットの任意の結合マップをプロットします。 |
回路の可視化
circuit_drawer(回路[、スケール、ファイル名、……] ) | 量子回路を描く。 |
DAG可視化
dag_drawer(dag[, scale, filename, style] ) | 量子回路の演算依存関係を表す有向無サイクルグラフ(dag)をプロットする。 |
パスマネージャーの可視化
pass_manager_drawer(pass_manager[,...] ) | パスマネージャーを描く。 |
タイムライン可視化
timeline_drawer(プログラム[、スタイル、……] ) | スケジュールされた回路プログラムの可視化データを生成します。 |
単一量子ビット状態遷移の可視化
visualize_transition(回路[、配線、……] ) | 量子ゲートを適用することで、単一量子ビットの状態遷移を示すアニメーションを作成します。 |
配列/行列の可視化
array_to_latex(配列[, 精度, 接頭辞,...] ) | 複雑なnumpy配列(1次元または2次元)のLatex表現 |
例外
VisualizationError
exception qiskit.visualization.VisualizationError(*message)
ベース: QiskitError
ビジュアライゼーション特有のエラーについて。
エラーメッセージを設定する。