Langkau ke kandungan utama

Plot keadaan kuantum

Versi pakej

Kod pada halaman ini dibangunkan menggunakan keperluan berikut. Kami mengesyorkan penggunaan versi ini atau yang lebih baharu.

qiskit[all]~=2.3.0

Dalam banyak situasi β€” seperti pembelajaran atau penyahpepijatan β€” adalah berguna untuk memvisualisasikan keadaan komputer kuantum. Di sini kami andaikan anda sudah mempunyai keadaan tertentu daripada simulasi atau tomografi keadaan. Hanya keadaan sistem kuantum yang kecil sahaja yang boleh dilihat.

Menggunakan output daripada fungsi

Semua fungsi pada halaman ini mengembalikan objek yang kaya. Apabila baris terakhir sel kod mengeluarkan objek ini, notebook Jupyter akan memaparkannya di bawah sel. Jika anda memanggil fungsi ini dalam persekitaran lain atau dalam skrip, anda perlu memaparkan atau menyimpan output secara eksplisit.

Kebanyakan fungsi mengembalikan imej, yang merupakan objek matplotlib.Figure. Dua pilihan adalah:

  • Panggil .show() pada objek yang dikembalikan untuk membuka imej dalam tetingkap baharu (dengan syarat backend matplotlib yang dikonfigurasikan bersifat interaktif).
  • Panggil .savefig("out.png") untuk menyimpan rajah ke out.png dalam direktori kerja semasa. Kaedah savefig() menerima laluan supaya anda boleh menyesuaikan lokasi dan nama fail output. Contohnya, plot_state_city(psi).savefig("out.png").

Output LaTeX adalah objek IPython.display.Latex. Pilihan terbaik dalam persekitaran bukan-Jupyter adalah untuk mengelakkan output ini dengan sama ada mencetak keadaan untuk perwakilan teks, atau beralih kepada drawer latex_source untuk mendapatkan rentetan sumber LaTeX.

Keadaan kuantum adalah sama ada matriks ketumpatan ρ\rho (matriks Hermitian) atau statevector ∣ψ⟩|\psi\rangle (vektor kompleks). Matriks ketumpatan berkaitan dengan statevector melalui

ρ=∣ψ⟩⟨ψ∣,\rho = |\psi\rangle\langle \psi|,

dan lebih umum, kerana ia boleh mewakili keadaan campuran (hasil tambah positif statevector)

ρ=βˆ‘kpk∣ψk⟩⟨ψk∣.\rho = \sum_k p_k |\psi_k\rangle\langle \psi_k |.

Qiskit mewakili keadaan kuantum melalui kelas Statevector dan DensityMatrix serta menyediakan banyak fungsi visualisasi. Lihat bahagian selepas sel kod berikut untuk melihat bagaimana fungsi visualisasi berbeza Qiskit memplot keadaan kuantum berikut.

# Added by doQumentation β€” required packages for this notebook
!pip install -q qiskit
from math import pi
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

# Create a Bell state for demonstration
qc = QuantumCircuit(2)
qc.h(0)
qc.crx(pi / 2, 0, 1)
psi = Statevector(qc)

Walaupun bukan secara teknikalnya sebuah "plot", Qiskit boleh merender perwakilan LaTeX bagi objek Statevector dan DensityMatrix yang dipaparkan dengan cantik dalam notebook Jupyter. Ini mengikuti konvensyen matematik standard untuk menuliskan keadaan kuantum. Baca lebih lanjut dalam Asas maklumat kuantum: Sistem tunggal.

Statevector lalai kepada "notasi ket", manakala matriks ketumpatan dipaparkan sebagai matriks 2Γ—2.

Anda juga boleh menggantikan "latex" dengan "latex_source" untuk mendapatkan rentetan LaTeX mentah.

psi.draw("latex")  # psi is a Statevector object

22∣00⟩+12∣01βŸ©βˆ’i2∣11⟩\frac{\sqrt{2}}{2} |00\rangle+\frac{1}{2} |01\rangle- \frac{i}{2} |11\rangle

from qiskit.quantum_info import DensityMatrix

DensityMatrix(psi).draw("latex") # convert to a DensityMatrix and draw
[122402i424140i40000βˆ’2i4βˆ’i4014] \begin{bmatrix} \frac{1}{2} & \frac{\sqrt{2}}{4} & 0 & \frac{\sqrt{2} i}{4} \\ \frac{\sqrt{2}}{4} & \frac{1}{4} & 0 & \frac{i}{4} \\ 0 & 0 & 0 & 0 \\ - \frac{\sqrt{2} i}{4} & - \frac{i}{4} & 0 & \frac{1}{4} \\ \end{bmatrix}
from qiskit.visualization import plot_state_city

plot_state_city(psi)
# Alternative: psi.draw("city")

Output of the previous code cell

from qiskit.visualization import plot_state_hinton

plot_state_hinton(psi)
# Alternative: psi.draw("hinton")

Output of the previous code cell

from qiskit.visualization import plot_state_paulivec

plot_state_paulivec(psi)
# Alternative: psi.draw("paulivec")

Output of the previous code cell

from qiskit.quantum_info import SparsePauliOp

SparsePauliOp.from_operator(psi)
SparsePauliOp(['II', 'IX', 'XY', 'YI', 'YX', 'YZ', 'ZI', 'ZX', 'ZZ'],
coeffs=[ 0.25 +0.j, 0.1767767+0.j, -0.1767767+0.j, -0.125 +0.j,
-0.1767767+0.j, 0.125 +0.j, 0.125 +0.j, 0.1767767+0.j,
0.125 +0.j])
from qiskit.visualization import plot_state_qsphere

plot_state_qsphere(psi)
# Alternative: psi.draw("qsphere")

Output of the previous code cell

from qiskit.visualization import plot_bloch_multivector

plot_bloch_multivector(psi)
# Alternative: psi.draw("bloch")

Output of the previous code cell

Pilihan untuk fungsi plot keadaan​

Semua fungsi plot keadaan menerima argumen berikut (kecuali drawer LaTeX, yang tidak mengembalikan rajah Matplotlib, dan plot_state_qsphere, yang hanya menerima figsize):

  • title (str): rentetan untuk tajuk plot, dipaparkan di bahagian atas plot
  • figsize (tuple): saiz rajah dalam inci (lebar, tinggi)

Fungsi plot_state_city dan plot_state_paulivec juga menerima argumen color (senarai rentetan) yang menentukan warna bar. Lihat dokumentasi API untuk maklumat lanjut.

Can't remember the name of the plotting function you need? Try asking Qiskit Code Assistant.

Langkah seterusnya​

Cadangan
Source: IBM Quantum docs β€” updated 16 Mac 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026