可视化和动画
布洛赫球面
- class Bloch(fig=None, axes=None, view=None, figsize=None, background=False)[源代码]
用于在布洛赫球上绘制数据的类。有效数据可以是点、向量或Qobj对象。
- Attributes:
- axesmatplotlib.axes.Axes
用户提供的Matplotlib轴用于布洛赫球动画。
- figmatplotlib.figure.Figure
用户提供的Matplotlib Figure实例用于绘制Bloch球体。
- font_colorstr, default ‘black’
用于布洛赫球标签的字体颜色。
- font_sizeint, default 20
用于布洛赫球标签的字体大小。
- frame_alphafloat, default 0.1
设置布洛赫球框架的透明度。
- frame_colorstr, default ‘gray’
球体线框的颜色。
- frame_widthint, default 1
线框的宽度。
- point_colorlist, default [“b”, “r”, “g”, “#CC6600”]
用于布洛赫球点标记的颜色列表,即默认情况下,点0和点4都将为蓝色('b')。
- point_markerlist, default [“o”, “s”, “d”, “^”]
要循环使用的点标记形状列表。
- point_sizelist, default [25, 32, 35, 45]
点标记大小的列表。注意,并非所有点标记在绘制时看起来大小相同!
- sphere_alphafloat, default 0.2
布洛赫球本身的透明度。
- sphere_colorstr, default ‘#FFDDDD’
布洛赫球的颜色。
- figsizelist, default [7, 7]
布洛赫球图的图形大小。最好两个数字相同;否则你会得到一个看起来像足球的布洛赫球。
- vector_colorlist, [“g”, “#CC6600”, “b”, “r”]
要循环使用的向量颜色列表。
- vector_widthint, default 5
显示的向量的宽度。
- vector_stylestr, default ‘-|>’
向量箭头样式(来自matplotlib的箭头样式)。
- vector_mutationint, default 20
向量箭头的宽度。
- viewlist, default [-60, 30]
方位角和仰角视角。
- xlabellist, default [“$x$”, “”]
分别对应于+x和-x轴的字符串列表。
- xlposlist, default [1.1, -1.1]
+x 和 -x 标签的位置分别。
- ylabellist, default [“$y$”, “”]
分别对应于+y和-y轴标签的字符串列表。
- ylposlist, default [1.2, -1.2]
+y 和 -y 标签的位置分别。
- zlabellist, default [‘$\left|0\right>$’, ‘$\left|1\right>$’]
分别对应于+z和-z轴标签的字符串列表。
- zlposlist, default [1.2, -1.2]
+z 和 -z 标签的位置分别。
- add_annotation(state_or_vector, text, **kwargs)[source]
向布洛赫球添加文本或LaTeX注释,由量子比特状态或向量参数化。
- Parameters:
- state_or_vector
Qobj/array/list/tuple 注释的位置。 一个量子比特的Qobj或一个包含3个元素的向量。
- textstr
注释文本。 你可以使用LaTeX,但记得使用原始字符串 例如 r”$langle x rangle$” 或者转义反斜杠 例如 “$\langle x \rangle$”。
- kwargs
选项与 mplot3d.axes3d.text 相同,包括: 字体大小、颜色、水平对齐、垂直对齐。
- state_or_vector
- add_arc(start, end, fmt='b', steps=None, **kwargs)[source]
在球体上的两点之间添加一条弧线。默认情况下,弧线设置为蓝色实线曲线。
起点和终点必须在同一个球体上(即具有相同的半径),但不需要在单位球体上。
- add_points(
- points,
- meth: Literal['s', 'm', 'l'] = 's',
- colors=None,
- alpha=1.0,
将一系列数据点添加到布洛赫球体。
- Parameters:
- pointsarray_like
数据点的集合。
- meth{‘s’, ‘m’, ‘l’}
绘制的点类型,使用'm'表示多色,'l'表示用线连接的点。
- colorsarray_like
可选的数组,包含点的颜色。 对于方法 's' 使用单一颜色,对于方法 'm' 使用颜色列表。
- alphafloat, default=1.
向量的透明度值。值介于0和1之间。
注释
在QuTiP 4.6中使用
meth=l时,线条透明度默认为0.75,并且无法更改。 当在QuTiP 4.7中添加了alpha参数后,对于meth的值,默认值变为alpha=1.0。
- add_states(
- state,
- kind: Literal['vector', 'point'] = 'vector',
- colors=None,
- alpha=1.0,
将状态向量 Qobj 添加到布洛赫球体。
- Parameters:
- state
Qobjor array_like 输入状态向量或列表。
- kind{‘vector’, ‘point’}
要绘制的对象类型。
- colorsarray_like
可选的数组,包含状态的颜色。
- alphafloat, default=1.
向量的透明度值。值介于0和1之间。
- state
- add_vectors(vectors, colors=None, alpha=1.0)[source]
将向量列表添加到布洛赫球体。
- Parameters:
- vectorsarray_like
具有单位长度或更小的向量的数组。
- colorsarray_like
可选的数组,包含向量的颜色。
- alphafloat, default=1.
向量的透明度值。值介于0和1之间。
- save(name=None, format='png', dirc=None, dpin=None)[source]
将Bloch球体保存到目录
dirc中的format类型的文件中。- Parameters:
- namestr
保存图像的名称。必须包括路径和格式。 例如:‘/Users/Me/Desktop/bloch.png’ 这将覆盖‘format’和‘dirc’参数。
- formatstr
输出图像的格式。
- dircstr
输出图像的目录。默认为当前工作目录。
- dpinint
分辨率,单位为每英寸点数。
- Returns:
- File containing plot of Bloch sphere.
- set_label_convention(convention)[source]
根据其中一个惯例设置x、y和z标签。
- Parameters:
- conventionstring
以下之一:
“原始”
“xyz”
“sx sy sz”
“01”
“偏振琼斯”
“偏振琼斯字母” 另请参阅:https://en.wikipedia.org/wiki/Jones_calculus
“偏振斯托克斯” 另请参阅:https://en.wikipedia.org/wiki/Stokes_parameters
图形和可视化
用于可视化量子动力学模拟结果的函数,量子状态和过程的可视化。
- hinton(
- rho,
- x_basis=None,
- y_basis=None,
- color_style='scaled',
- label_top=True,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
绘制一个Hinton图来可视化密度矩阵或超算子。
- Parameters:
- rhoqobj
输入密度矩阵或超算子。
注意
超算子的Hinton图目前仅支持量子比特。
- x_basislist of strings, optional
表示输入x轴的刻度标签列表。
- y_basislist of strings, optional
表示输入y轴的y刻度标签列表。
- color_stylestr, {“scaled”, “threshold”, “phase”}, default: “scaled”
确定如何为每个方块分配颜色:
如果设置为
"scaled"(默认值),则通过将相应矩阵元素的绝对值传递到cmap中,并带有实部的符号来选择每种颜色。如果设置为
"threshold",每个方块将绘制为矩阵元素正实部的cmap最大值和负实部的最小值;请注意,这将“threshold”推广到了复数。如果设置为
"phase",则根据相应矩阵元素的角度选择每种颜色。
- label_topbool, default: True
如果为True,x轴刻度标签将放置在顶部,否则它们将出现在图表下方。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘制图表时使用的ax上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- Raises:
- ValueError
输入参数不是量子对象。
示例
>>> import qutip
>>> dm = qutip.rand_dm(4) >>> fig, ax = qutip.hinton(dm) >>> fig.show()
>>> qutip.settings.colorblind_safe = True >>> fig, ax = qutip.hinton(dm, color_style="threshold") >>> fig.show() >>> qutip.settings.colorblind_safe = False
>>> fig, ax = qutip.hinton(dm, color_style="phase") >>> fig.show()
- matrix_histogram(
- M,
- x_basis=None,
- y_basis=None,
- limits=None,
- bar_style='real',
- color_limits=None,
- color_style='real',
- options=None,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
为矩阵M绘制直方图,并给出x和y轴的标签以及标题。
- Parameters:
- MMatrix of Qobj
要可视化的矩阵
- x_basislist of strings, optional
x轴刻度标签列表
- y_basislist of strings, optional
y轴刻度标签列表
- limitslist/array with two float numbers, optional
z轴限制 [最小值, 最大值]
- bar_stylestr, {“real”, “img”, “abs”, “phase”}, default: “real”
如果设置为
"real"(默认值),每个条形图将绘制为相应矩阵元素的实部如果设置为
"img",每个条形图将绘制为相应矩阵元素的虚部如果设置为
"abs",每个条形图将绘制为对应矩阵元素的绝对值如果设置为
"phase"(默认值),每个条形图将绘制为相应矩阵元素的角度
- color_limitslist/array with two float numbers, optional
颜色条的限制 [最小值, 最大值]
- color_stylestr, {“real”, “img”, “abs”, “phase”}, default: “real”
确定如何为每个方块分配颜色:
如果设置为
"real"(默认值),则根据相应矩阵元素的实部选择每种颜色。如果设置为
"img",则每种颜色根据相应矩阵元素的虚部选择。如果设置为
"abs",则每种颜色根据相应矩阵元素的绝对值选择。如果设置为
"phase",则根据相应矩阵元素的角度选择每种颜色。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
显示颜色条
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- optionsdict, optional
一个包含绘图额外选项的字典。 选项的名称(键)和值如下所述:
- ‘zticks’list of numbers, optional
z轴刻度位置的列表。
- ‘bars_spacing’float, default: 0.1
条形之间的间距。
- ‘bars_alpha’float, default: 1.
柱子的透明度,应在0到1之间
- ‘bars_lw’float, default: 0.5
条形边缘的线宽。
- ‘bars_edgecolor’color, default: ‘k’
条形边缘的颜色。 示例:'k', (0.1, 0.2, 0.5) 或 '#0f0f0f80'。
- ‘shade’bool, default: True
是否对柱子的暗面进行阴影处理(True)或不进行阴影处理(False)。 阴影处理是相对于绘图的光源而言的。
- ‘azim’float, default: -35
方位视角。
- ‘elev’float, default: 35
仰视角。
- ‘stick’bool, default: False
更改xlim和ylim,使得靠近XZ和YZ平面的条形图会紧贴这些平面。 如果
ax作为参数传递,此选项无效。- ‘cbar_pad’float, default: 0.04
原始轴在颜色条和新图像轴之间的部分。 (即3D图形和颜色条之间的填充)。
- ‘cbar_to_z’bool, default: False
是否将最大和最小z值的颜色设置为颜色条中的最大和最小颜色(True)或不设置(False)。
- ‘threshold’: float, optional
当较小高度的条形应该透明时的阈值。如果未设置,所有条形将根据颜色映射进行着色。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- Raises:
- ValueError
输入参数无效。
- plot_energy_levels(
- H_list,
- h_labels=None,
- energy_levels=None,
- N=0,
- *,
- fig=None,
- ax=None,
绘制哈密顿量列表的能级图。包括最多N个能级。对于H_list中的每个元素,绘制累积哈密顿量sum(H_list[0:n])的能级图,其中n是H_list中元素的索引。
- Parameters:
- H_listList of Qobj
哈密顿量列表。
- h_lablesList of string, optional
每个哈密顿量的xticklabels列表
- energy_levelsList of string, optional
初始哈密顿量能级左侧的yticklabels列表。
- Nint, default: 0
要绘制的能级数量
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- Returns:
- fig, axtuple
用于生成图形的matplotlib图形和轴实例的元组。
- Raises:
- ValueError
输入参数无效。
- plot_expectation_values(results, ylabels=None, *, fig=None, axes=None)[source]
可视化演化求解器的结果(期望值)。 results 被假定为 Result 的实例,或 Result 实例的列表。
- Parameters:
- results(list of)
Result 由任何QuTiP演化求解器返回的结果对象列表。
- ylabelslist of strings, optional
y轴标签。列表的长度应与results相同。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axes(list of) axes instances, optional
绘图将被绘制的坐标轴上下文。
- results(list of)
- Returns:
- fig, axestuple
用于生成图形的matplotlib图形和轴实例数组的元组。
- plot_fock_distribution(
- rho,
- fock_numbers=None,
- color='green',
- unit_y_range=True,
- *,
- fig=None,
- ax=None,
绘制描述振荡器模式的密度矩阵(或ket)的Fock分布。
- Parameters:
- rho
Qobj 要可视化的状态的密度矩阵(或ket)。
- fock_numberslist of strings, optional
表示fock数的x轴刻度标签列表
- colorcolor or list of colors, default: “green”
条形面的颜色。
- unit_y_rangebool, default: True
设置y轴限制为[0, 1]或不设置
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- rho
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- plot_qubism(
- ket,
- theme='light',
- how='pairs',
- grid_iteration=1,
- legend_iteration=0,
- *,
- fig=None,
- ax=None,
用于多量子位纯态的Qubism图。最适合用于自旋链,特别是具有相同维度的偶数粒子。可以观察到前2k个粒子与其余粒子之间的纠缠。
注意
由于其独特的颜色映射,colorblind_safe 不适用
- Parameters:
- ketQobj
用于绘图的纯状态。
- themestr {‘light’, ‘dark’}, default: ‘light’
设置颜色主题,用于将复数值映射到颜色。 参见:complex_array_to_rgb。
- howstr {‘pairs’, ‘pairs_skewed’ or ‘before_after’}, default: ‘pairs’
Qubism 绘图的类型。选项:
‘pairs’ - 典型坐标,
‘pairs_skewed’ - 用于铁磁/反铁磁图,
‘before_after’ - 与Schmidt图相关(另见:plot_schmidt)。
- grid_iterationint, default: 1
在图上绘制的辅助线。 显示2*grid_iteration粒子与所有其他粒子的图块。
- legend_iterationint or ‘grid_iteration’ or ‘all’, default: 0
显示前
2*legend_iteration粒子的标签。选项 ‘grid_iteration’设置与grid_iteration相同的粒子数。选项‘all’为所有粒子创建标签。通常 它应该是0、1、2或可能是3。- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
注释
另请参阅 [1].
参考文献
[1]J. Rodriguez-Laguna, P. Migdal, M. Ibanez Berganza, M. Lewenstein 和 G. Sierra, Qubism: 多体波函数的自相似可视化, New J. Phys. 14 053028, arXiv:1112.3560 (2012), 开放获取。
- plot_schmidt(
- ket,
- theme='light',
- splitting=None,
- labels_iteration=(3, 2),
- *,
- fig=None,
- ax=None,
与施密特分解相关的绘图方案。 将状态转换为矩阵(A_ij -> A_i^j), 其中行是第一个粒子,列是最后一个。
另请参阅:plot_qubism 使用 how=’before_after’ 来生成类似的图表。
注意
由于其独特的颜色映射,colorblind_safe 不适用
- Parameters:
- ketQobj
用于绘图的纯状态。
- themestr {‘light’, ‘dark’}, default: ‘light’
设置颜色主题,用于将复数值映射到颜色。 参见:complex_array_to_rgb。
- splittingint, optional
绘制第一个粒子数量与其余粒子的对比图。 如果未给出,则为(粒子数量 + 1)// 2。
- labels_iterationint or pair of ints, default: (3, 2)
要显示为刻度标签的粒子数量,分别对应于第一个(垂直)和最后一个(水平)粒子。
- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- plot_spin_distribution(
- P,
- THETA,
- PHI,
- projection='2d',
- *,
- cmap=None,
- colorbar=False,
- fig=None,
- ax=None,
绘制自旋分布(以网格数据形式给出)。
- Parameters:
- Pmatrix
将分布值表示为网格矩阵。
- THETAmatrix
用于theta坐标的网格矩阵。其范围在0到pi之间
- PHImatrix
phi坐标的网格矩阵。其范围在0到2*pi之间。
- projection: str {‘2d’, ‘3d’}, default: ‘2d’
指定自旋分布函数是否要绘制为二维投影,其中单位球的表面映射到单位盘('2d')或表面图('3d')。
- cmapa matplotlib cmap instance, optional
颜色映射。
- colorbarbool, default: False
是否(True)或不(False)在维格纳函数图上附加一个颜色条。
- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- plot_wigner(
- rho,
- xvec=None,
- yvec=None,
- method='clenshaw',
- projection='2d',
- g=1.4142135623730951,
- sparse=False,
- parfor=False,
- *,
- cmap=None,
- colorbar=False,
- fig=None,
- ax=None,
绘制描述振荡器模式的密度矩阵(或ket)的Wigner函数。
- Parameters:
- rho
Qobj 要可视化的状态的密度矩阵(或ket)。
- xvecarray_like, optional
计算Wigner函数的x坐标。
- yvecarray_like, optional
用于计算Wigner函数的y坐标。不适用于‘fft’方法。
- methodstr {‘clenshaw’, ‘iterative’, ‘laguerre’, ‘fft’}, default: ‘clenshaw’
用于计算维格纳函数的方法。详情请参阅qutip.wigner的文档。
- projection: str {‘2d’, ‘3d’}, default: ‘2d’
指定是否将Wigner函数绘制为等高线图(‘2d’)或曲面图(‘3d’)。
- gfloat
缩放因子为 a = 0.5 * g * (x + iy),默认 g = sqrt(2)。 详情请参阅 qutip.wigner 的文档。
- sparsebool {False, True}
稀疏格式的标志。 有关详细信息,请参阅 qutip.wigner 的文档。
- parforbool {False, True}
并行计算的标志。 有关详细信息,请参阅 qutip.wigner 的文档。
- cmapa matplotlib cmap instance, optional
颜色映射。
- colorbarbool, default: False
是否(True)或否(False)应将颜色条附加到Wigner函数图上。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- rho
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
- plot_wigner_sphere(
- wigner,
- reflections=False,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
绘制一个彩色的布洛赫球。
- Parameters:
- wignera wigner transformation
在steps不同的theta和phi处的维格纳变换。
- reflectionsbool, default: False
如果球体的反射也应该被绘制出来。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘制图表时使用的ax上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
注释
特别感谢Russell P Rundle编写此函数。
- sphereplot(values, theta, phi, *, cmap=None, colorbar=True, fig=None, ax=None)[源代码]
在球体上绘制值矩阵
- Parameters:
- valuesarray
要绘制的数据集
- thetafloat
相对于z轴的角度。其范围在0到pi之间
- phifloat
在x-y平面中的角度。其范围在0到2*pi之间
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- Returns:
- fig, outputtuple
一个包含matplotlib图形和用于生成该图形的轴实例或动画实例的元组。
用于动画化量子动力学模拟结果的函数,
- anim_fock_distribution(
- rhos,
- fock_numbers=None,
- color='green',
- unit_y_range=True,
- *,
- fig=None,
- ax=None,
描述振荡器模式的密度矩阵(或ket)的Fock分布的动画。
- Parameters:
- rhos
Resultor list ofQobj 要可视化的状态的密度矩阵(或ket)。
- fock_numberslist of strings, optional
表示fock数的x轴刻度标签列表
- colorcolor or list of colors, default: “green”
条形面的颜色。
- unit_y_rangebool, default: True
设置y轴限制为[0, 1]或不设置
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- rhos
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- anim_hinton(
- rhos,
- x_basis=None,
- y_basis=None,
- color_style='scaled',
- label_top=True,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
绘制Hinton图的动画。
- Parameters:
- rhos
Resultor list ofQobj 输入密度矩阵或超算子。
注意
超算子的Hinton图目前仅支持量子比特。
- x_basislist of strings, optional
表示输入x轴的刻度标签列表。
- y_basislist of strings, optional
表示输入y轴的y刻度标签列表。
- color_stylestr, {“scaled”, “threshold”, “phase”}, default: “scaled”
确定如何为每个方块分配颜色:
如果设置为
"scaled"(默认值),则通过将相应矩阵元素的绝对值传递到cmap中,并带有实部的符号来选择每种颜色。如果设置为
"threshold",每个方块将绘制为矩阵元素正实部的cmap最大值和负实部的最小值;请注意,这将“threshold”推广到了复数。如果设置为
"phase",则根据相应矩阵元素的角度选择每种颜色。
- label_topbool, default: True
如果为True,x轴刻度标签将放置在顶部,否则它们将出现在图表下方。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘制图表时使用的ax上下文。
- rhos
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- Raises:
- ValueError
输入参数不是量子对象。
- anim_matrix_histogram(
- Ms,
- x_basis=None,
- y_basis=None,
- limits=None,
- bar_style='real',
- color_limits=None,
- color_style='real',
- options=None,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
为矩阵M绘制一个直方图的动画,并带有给定的x和y标签。
- Parameters:
- Mslist of matrices or
Result 要可视化的矩阵
- x_basislist of strings, optional
x轴刻度标签列表
- y_basislist of strings, optional
y轴刻度标签列表
- limitslist/array with two float numbers, optional
z轴限制 [最小值, 最大值]
- bar_stylestr, {“real”, “img”, “abs”, “phase”}, default: “real”
如果设置为
"real"(默认值),每个条形图将绘制为相应矩阵元素的实部如果设置为
"img",每个条形图将绘制为相应矩阵元素的虚部如果设置为
"abs",每个条形图将绘制为对应矩阵元素的绝对值如果设置为
"phase"(默认值),每个条形图将绘制为相应矩阵元素的角度
- color_limitslist/array with two float numbers, optional
颜色条的限制 [最小值, 最大值]
- color_stylestr, {“real”, “img”, “abs”, “phase”}, default: “real”
确定如何为每个方块分配颜色:
如果设置为
"real"(默认值),则根据相应矩阵元素的实部选择每种颜色。如果设置为
"img",则每种颜色根据相应矩阵元素的虚部选择。如果设置为
"abs",则每种颜色根据相应矩阵元素的绝对值选择。如果设置为
"phase",则根据相应矩阵元素的角度选择每种颜色。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
显示颜色条
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- optionsdict, optional
一个包含绘图额外选项的字典。 选项的名称(键)和值如下所述:
- ‘zticks’list of numbers, optional
z轴刻度位置的列表。
- ‘bars_spacing’float, default: 0.1
条形之间的间距。
- ‘bars_alpha’float, default: 1.
柱子的透明度,应在0到1之间
- ‘bars_lw’float, default: 0.5
条形边缘的线宽。
- ‘bars_edgecolor’color, default: ‘k’
条形边缘的颜色。 示例:'k', (0.1, 0.2, 0.5) 或 '#0f0f0f80'。
- ‘shade’bool, default: True
是否对柱子的暗面进行阴影处理(True)或不进行阴影处理(False)。 阴影处理是相对于绘图的光源而言的。
- ‘azim’float, default: -35
方位视角。
- ‘elev’float, default: 35
仰视角。
- ‘stick’bool, default: False
更改xlim和ylim,使得靠近XZ和YZ平面的条形图会紧贴这些平面。 如果
ax作为参数传递,此选项无效。- ‘cbar_pad’float, default: 0.04
原始轴在颜色条和新图像轴之间的部分。 (即3D图形和颜色条之间的填充)。
- ‘cbar_to_z’bool, default: False
是否将最大和最小z值的颜色设置为颜色条中的最大和最小颜色(True)或不设置(False)。
- ‘threshold’: float, optional
当较小高度的条形应该透明时的阈值。如果未设置,所有条形将根据颜色映射进行着色。
- Mslist of matrices or
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- Raises:
- ValueError
输入参数无效。
- anim_qubism(
- kets,
- theme='light',
- how='pairs',
- grid_iteration=1,
- legend_iteration=0,
- *,
- fig=None,
- ax=None,
多量子位纯态的Qubism图动画。 最适合用于自旋链,特别是具有相同维度的偶数粒子。 可以观察到前2k个粒子与其余粒子之间的纠缠。
注意
由于其独特的颜色映射,colorblind_safe 不适用
- Parameters:
- kets
Resultor list ofQobj 用于动画的纯状态。
- themestr {‘light’, ‘dark’}, default: ‘light’
设置颜色主题,用于将复数值映射到颜色。 参见:complex_array_to_rgb。
- howstr {‘pairs’, ‘pairs_skewed’, ‘before_after’}, default: ‘pairs’
Qubism 绘图的类型。选项:
‘pairs’ - 典型坐标,
‘pairs_skewed’ - 用于铁磁/反铁磁图,
‘before_after’ - 与Schmidt图相关(另见:plot_schmidt)。
- grid_iterationint, default: 1
在图上绘制的辅助线。 显示2*grid_iteration粒子与所有其他粒子的图块。
- legend_iterationint or ‘grid_iteration’ or ‘all’, default: 0
显示前
2*legend_iteration粒子的标签。选项 ‘grid_iteration’设置与grid_iteration相同的粒子数。选项‘all’为所有粒子创建标签。通常 它应该是0、1、2或可能是3。- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- kets
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
注释
另请参阅 [1]。
参考文献
[1]J. Rodriguez-Laguna, P. Migdal, M. Ibanez Berganza, M. Lewenstein 和 G. Sierra, Qubism: 多体波函数的自相似可视化, New J. Phys. 14 053028, arXiv:1112.3560 (2012), 开放获取。
- anim_schmidt(
- kets,
- theme='light',
- splitting=None,
- labels_iteration=(3, 2),
- *,
- fig=None,
- ax=None,
施密特分解的动画。 将状态转换为矩阵(A_ij -> A_i^j), 其中行是第一个粒子,列是最后一个。
另请参阅:plot_qubism 使用 how=’before_after’ 来生成类似的图表。
注意
由于其独特的颜色映射,colorblind_safe 不适用
- Parameters:
- ket
Resultor list ofQobj 用于动画的纯状态。
- themestr {‘light’, ‘dark’}, default: ‘light’
设置颜色主题,用于将复数值映射到颜色。 参见:complex_array_to_rgb。
- splittingint, optional
绘制第一个粒子数量与其余粒子的对比图。 如果未给出,则为(粒子数量 + 1)// 2。
- labels_iterationint or pair of ints, default: (3, 2)
要显示为刻度标签的粒子数量,分别对应于第一个(垂直)和最后一个(水平)粒子。
- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- ket
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- anim_sphereplot(V, theta, phi, *, cmap=None, colorbar=True, fig=None, ax=None)[source]
在球体上显示数值矩阵的动画
- Parameters:
- Vlist of array instances
要绘制的数据集
- thetafloat
相对于z轴的角度。其范围在0到pi之间
- phifloat
在x-y平面中的角度。其范围在0到2*pi之间
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- anim_spin_distribution(
- Ps,
- THETA,
- PHI,
- projection='2d',
- *,
- cmap=None,
- colorbar=False,
- fig=None,
- ax=None,
自旋分布的动画(以网格数据形式给出)。
- Parameters:
- Pslist of matrices
将分布值表示为网格矩阵。
- THETAmatrix
用于theta坐标的网格矩阵。其范围在0到pi之间
- PHImatrix
phi坐标的网格矩阵。其范围在0到2*pi之间。
- projection: str {‘2d’, ‘3d’}, default: ‘2d’
指定自旋分布函数是否要绘制为二维投影,其中单位球的表面映射到单位盘('2d')或表面图('3d')。
- cmapa matplotlib cmap instance, optional
颜色映射。
- colorbarbool, default: False
是否(True)或否(False)应将颜色条附加到Wigner函数图上。
- figa matplotlib figure instance, optional
绘制图形的画布。
- axa matplotlib axis instance, optional
绘制图表的轴上下文。
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- anim_wigner(
- rhos,
- xvec=None,
- yvec=None,
- method='clenshaw',
- projection='2d',
- g=1.4142135623730951,
- sparse=False,
- parfor=False,
- *,
- cmap=None,
- colorbar=False,
- fig=None,
- ax=None,
描述振荡器模式的密度矩阵(或ket)的Wigner函数的动画。
- Parameters:
- rhos
Resultor list ofQobj 要可视化的状态的密度矩阵(或ket)。
- xvecarray_like, optional
计算Wigner函数的x坐标。
- yvecarray_like, optional
用于计算Wigner函数的y坐标。不适用于‘fft’方法。
- methodstr {‘clenshaw’, ‘iterative’, ‘laguerre’, ‘fft’}, default: ‘clenshaw’
用于计算维格纳函数的方法。详情请参阅qutip.wigner的文档。
- projection: str {‘2d’, ‘3d’}, default: ‘2d’
指定是否将Wigner函数绘制为等高线图(‘2d’)或曲面图(‘3d’)。
- gfloat
缩放因子为 a = 0.5 * g * (x + iy),默认 g = sqrt(2)。 详情请参阅 qutip.wigner 的文档。
- sparsebool {False, True}
稀疏格式的标志。 有关详细信息,请参阅 qutip.wigner 的文档。
- parforbool {False, True}
并行计算的标志。 有关详细信息,请参阅 qutip.wigner 的文档。
- cmapa matplotlib cmap instance, optional
颜色映射。
- colorbarbool, default: False
是否(True)或否(False)应将颜色条附加到Wigner函数图上。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘图将被绘制的坐标轴上下文。
- rhos
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
- anim_wigner_sphere(
- wigners,
- reflections=False,
- *,
- cmap=None,
- colorbar=True,
- fig=None,
- ax=None,
为彩色布洛赫球体添加动画效果。
- Parameters:
- wignerslist of transformations
在steps不同的theta和phi处的维格纳变换。
- reflectionsbool, default: False
如果球体的反射也应该被绘制出来。
- cmapa matplotlib colormap instance, optional
绘图时使用的颜色映射。
- colorbarbool, default: True
是否(True)或不(False)应该附加一个颜色条。
- figa matplotlib Figure instance, optional
图表将在其中绘制的图形画布。
- axa matplotlib axes instance, optional
绘制图表时使用的ax上下文。
- Returns:
- fig, anituple
用于生成图形的matplotlib图形和动画实例的元组。
注释
特别感谢Russell P Rundle编写此函数。
该模块包含以某种方式增强Matplotlib的实用函数。
- wigner_cmap(
- W,
- levels=1024,
- shift=0,
- max_color='#09224F',
- mid_color='#FFFFFF',
- min_color='#530017',
- neg_color='#FF97D4',
- invert=False,
一个自定义的颜色映射,通过创建一个非线性颜色映射来强调负值。
- Parameters:
- Warray
维格纳函数数组,或任何数组。
- levelsint, default: 1024
要创建的颜色级别数量。
- shiftfloat, default: 0
调整Wigner元素强调的值。 此参数通常应为负数且较小(例如-1e-5)。
- max_colorstr, default: ‘#09224F’
对应于数据最大值的颜色字符串。接受任何与Matplotlib.colors.ColorConverter兼容的字符串格式。
- mid_colorstr, default: ‘#FFFFFF’
对应零值的颜色。接受任何与Matplotlib.colors.ColorConverter兼容的字符串格式。
- min_colorstr, default: ‘#530017’
对应于最小数据值的颜色。接受与Matplotlib.colors.ColorConverter兼容的任何字符串格式。
- neg_colorstr, default: ‘#FF97D4’
开始突出显示负值的颜色。接受任何与Matplotlib.colors.ColorConverter兼容的字符串格式。
- invertbool, default: False
反转负值的配色方案,使较小的负值具有更深的颜色。
- Returns:
- Returns a Matplotlib colormap instance for use in plotting.
注释
‘shift’ 参数允许您改变颜色映射开始突出显示负颜色的位置。这在由于数值舍入和/或截断导致存在小的负 Wigner 元素的情况下非常有用。
伪概率函数
- qfunc(
- state: Qobj,
- xvec,
- yvec,
- g: float = 1.4142135623730951,
- precompute_memory: float = 1024,
给定状态向量或密度矩阵在相空间点
0.5 * g * (xvec + i*yvec)的 Husimi-Q 函数。- Parameters:
- state
Qobj 一个状态向量或密度矩阵。这不能具有张量积结构。
- xvec, yvecarray_like
计算Husimi-Q函数的x和y坐标。
- gfloat, default: sqrt(2)
a = 0.5 * g * (x + iy)的缩放因子。g 的值与对易关系 \([x,\,y] = i\hbar\) 中的 \(\hbar\) 值相关,通过 \(\hbar=2/g^2\) 关系,默认值对应于 \(\hbar=1\)。- precompute_memoryreal, default: 1024
在处理密度矩阵输入时,计算过程中可能用作工作空间的大小(以MB为单位)。对于状态向量输入,此设置将被忽略。由于需要其他数量级较小的中间变量,这个界限并不完全准确,但是一个很好的近似值。如果你想对密度矩阵使用与单个ket相同的迭代算法,请设置
precompute_memory=None。
- state
- Returns:
- ndarray
表示在指定范围
[xvec, yvec]上计算的Husimi-Q函数的值。
另请参阅
QFunc基于类的版本,如果您想在同一坐标上计算多个状态的Husimi-Q函数,则更高效。
- spin_q_function(rho, theta, phi)[source]
自旋的Husimi Q函数定义为
Q(theta, phi) = SCS.dag() * rho * SCS对于自旋相干态SCS = spin_coherent( j, theta, phi)其中 j 是自旋长度。 这里的实现更高效,因为它不会在 theta 和 phi 处生成所有的 SCS(参见参考文献)。自旋Q函数在球面上积分时是正常的
\[\frac{4 \pi}{2j + 1}\int_\phi \int_\theta Q(\theta, \phi) \sin(\theta) d\theta d\phi = 1\]- Parameters:
- stateqobj
自旋-j量子系统的状态向量或密度矩阵。
- thetaarray_like
计算Husimi-Q函数的极角(余纬度)。
- phiarray_like
计算Husimi-Q函数时的方位角。
- Returns:
- Q, THETA, PHI2d-array
表示在THETA和PHI指定的值处的自旋Husimi Q函数的值。
参考文献
[1] Lee Loh, Y., & Kim, M. (2015). 美国物理杂志, 83(1), 30–35. https://doi.org/10.1119/1.4898595
- spin_wigner(rho, theta, phi)[source]
自旋-j系统的Wigner函数。
自旋W函数在球体表面积分时是正常的
\[\sqrt{\frac{4 \pi}{2j + 1}}\int_\phi \int_\theta W(\theta,\phi) \sin(\theta) d\theta d\phi = 1\]- Parameters:
- stateqobj
自旋-j量子系统的状态向量或密度矩阵。
- thetaarray_like
计算W函数的极(余纬度)角度。
- phiarray_like
计算W函数的方位角。
- Returns:
- W, THETA, PHI2d-array
表示在THETA和PHI指定的值处的自旋维格纳函数的值。
参考文献
[1] Agarwal, G. S. (1981). 物理评论 A, 24(6), 2889–2896. https://doi.org/10.1103/PhysRevA.24.2889
[2] Dowling, J. P., Agarwal, G. S., & Schleich, W. P. (1994). 物理评论 A, 49(5), 4101–4109. https://doi.org/10.1103/PhysRevA.49.4101
[3] Wigner 3-j 符号与 Clebsch-Gordan 系数之间的转换 取自维基百科 (https://en.wikipedia.org/wiki/3-j_symbol)
- wigner(
- psi,
- xvec,
- yvec=None,
- method='clenshaw',
- g=1.4142135623730951,
- sparse=False,
- parfor=False,
状态向量或密度矩阵在点 xvec + i * yvec 处的Wigner函数。
- Parameters:
- stateqobj
状态向量或密度矩阵。
- xvecarray_like
计算Wigner函数的x坐标。
- yvecarray_like
用于计算Wigner函数的y坐标。不适用于‘fft’方法。
- gfloat, default: sqrt(2)
a = 0.5 * g * (x + iy) 的缩放因子,默认 g = sqrt(2)。 g 的值与对易关系 [x, y] = i * hbar 中的 hbar 值相关,通过 hbar=2/g^2 给出默认值 hbar=1。
- methodstring {‘clenshaw’, ‘iterative’, ‘laguerre’, ‘fft’}, default: ‘clenshaw’
选择方法 'clenshaw'、'iterative'、'laguerre' 或 'fft',其中 'clenshaw' 和 'iterative' 使用迭代方法来评估密度矩阵的 Wigner 函数 \(|m>
,而 'laguerre' 使用 scipy 中的 Laguerre 多项式来完成相同的任务。'fft' 方法评估密度矩阵的傅里叶变换。'iterative' 方法是默认的,通常推荐使用,但对于非常稀疏的密度矩阵(例如,在大希尔伯特空间中的 Fock 态叠加),'laguerre' 方法更高效。'clenshaw' 方法是处理具有大量激发(>~50)的密度矩阵的首选方法。'clenshaw' 是一种快速且数值稳定的方法。 - sparsebool, optional
告诉默认求解器是否保持输入密度矩阵为稀疏格式。随着密度矩阵维度的增加,设置此标志可以提高性能。
- parforbool, optional
用于计算基于拉盖尔多项式的维格纳函数的标志 method='laguerre' 使用 parfor 函数并行计算。
- Returns:
- Warray
表示在指定范围 [xvec,yvec] 上计算的 Wigner 函数的值。
- yvexarray
仅限FFT。返回通过傅里叶变换计算的y坐标值。
注释
'fft' 方法仅接受 xvec 输入作为 x 坐标。 y 坐标在内部计算。
参考文献
乌尔夫·莱昂哈特, 《测量光的量子态》,(剑桥大学出版社,1997年)
- class QFunc(xvec, yvec, g: float = 1.4142135623730951, memory: float = 1024)[source]
基于类的方法,用于计算在固定相空间点
0.5*g* (xvec + i*yvec)处多种不同量子态的 Husimi-Q 函数。 这个类的首次使用成本略高于qfunc,但后续操作将快几倍。然而,它可能需要相当多的内存。将创建的对象作为函数调用以检索 Husimi-Q 函数。- Parameters:
- xvec, yvecarray_like
计算Husimi-Q函数的x和y坐标。
- gfloat, default: sqrt(2)
a = 0.5 * g * (x + iy)的缩放因子。g 的值与对易关系中的 hbar 值相关,通过 \(\hbar=2/g^2\),因此默认值对应于 \(\hbar=1\)。- memoryreal, default: 1024
以MB为单位的大小,可能被内部用作工作空间。如果随后传递的状态维度足够大,以至于超过此限制,此类将引发
MemoryError。在这些情况下,请使用qfunc并设置precompute_memory=None,以强制使用较慢但更节省内存的算法。
另请参阅
qfunc单一函数版本,为了使用更少的内存,将涉及多次计算多个量。
示例
初始化一个正方形坐标集的类,包含一些我们想要调查的状态。
>>> xvec = np.linspace(-2, 2, 101) >>> states = [qutip.rand_dm(10) for _ in [None]*10] >>> qfunc = qutip.QFunc(xvec, xvec)
现在我们可以更高效地计算每个状态的Husimi-Q函数:
>>> husimiq = np.array([qfunc(state) for state in states])
量子过程层析成像
- qpt(U, op_basis_list)[source]
计算给定(可能非酉)变换矩阵U的量子过程断层扫描chi矩阵,该矩阵根据以下公式变换向量形式的密度矩阵:
向量(rho) = U * 向量(rho0)
或
rho = unstack_columns(U * stack_columns(rho0))
U 可以使用 QuTiP 传播器函数为开放量子系统计算。
- Parameters:
- UQobj
变换操作符。可以使用QuTiP传播函数进行计算。
- op_basis_listlist
表示基础状态的Qobj列表。
- Returns:
- chiarray
QPT 卡方矩阵
- qpt_plot(chi, lbls_list, title=None, fig=None, axes=None)[source]
可视化量子过程断层扫描chi矩阵。分别绘制实部和虚部。
- Parameters:
- chiarray
输入QPT chi矩阵。
- lbls_listlist
QPT图表轴的标签列表。
- titlestr, optional
图表标题。
- figfigure instance, optional
用于生成QPT图的用户自定义图形实例。
- axeslist of figure axis instance, optional
用户定义的图形轴实例(两个轴的列表)用于生成QPT图。
- Returns:
- fig, axtuple
用于生成图形的matplotlib图形和轴实例的元组。
- qpt_plot_combined(
- chi,
- lbls_list,
- title=None,
- fig=None,
- ax=None,
- figsize=(8, 6),
- threshold=None,
可视化量子过程断层扫描的chi矩阵。绘制条形图,其高度和颜色分别对应于绝对值和相位。
- Parameters:
- chiarray
输入QPT chi矩阵。
- lbls_listlist
QPT图表轴的标签列表。
- titlestr, optional
图表标题。
- figfigure instance, optional
用于生成QPT图的用户自定义图形实例。
- figsize(int, int), default: (8, 6)
当未提供
fig时,图形的大小。- axfigure axis instance, optional
用于生成QPT图的用户自定义图形轴实例 (替代fig参数)。
- threshold: float, optional
当较小高度的条形应该透明时的阈值。如果未设置,所有条形将根据颜色映射进行着色。
- Returns:
- fig, axtuple
用于生成图形的matplotlib图形和轴实例的元组。