plot_wigner_function
- qctrlvisualizer.plot_wigner_function(wigner_function, position, momentum, contour_count=100, *, figure=None)
Create a contour plot of the specified Wigner function.
- Parameters
wigner_function (np.ndarray) – The Wigner function values. Only the real part of this array will be plotted. Must be a 2D array of shape
(L, K)
.position (np.ndarray) – The dimensionless position vector. Must be a strictly increasing 1D array of length L.
momentum (np.ndarray) – The dimensionless momentum vector. Must be a strictly increasing 1D array of length K.
contour_count (int, optional) – The number of contour lines, the larger the value the finer the contour plot will be. Defaults to 100.
figure (matplotlib.figure.Figure, optional) – A matplotlib Figure in which to place the plots. If passed, its dimensions and axes will be overridden.
Examples
Plot the Wigner function associated to state \((|0 \rangle + |5 \rangle) / \sqrt{2}\).
import numpy as np from qctrl import Qctrl from qctrlvisualizer import plot_wigner_function qctrl = Qctrl() position = np.linspace(-5, 5, 100) momentum = np.linspace(-5, 5, 100) graph = qctrl.create_graph() state = (graph.fock_state(10, 0) + graph.fock_state(10, 5)) / np.sqrt(2) density_matrix = graph.outer_product(state, state) wigner_transform = graph.wigner_transform( density_matrix, position, momentum, name="wigner_transform" ) wigner_function = qctrl.functions.calculate_graph( graph=graph, output_node_names=["wigner_transform"] ).output["wigner_transform"]["value"] plot_wigner_function(wigner_function, position, momentum)