在bloch球体上实时绘图

时间:2016-03-23 17:09:25

标签: python matplotlib plot qutip

我正在尝试使用Qutip函数bloch()在bloch球体上绘制实时数据。

到目前为止,当我在那里有一个b.show()时,代码总是中断。

我在网上找到了很多针对类似问题的解决方案,但是大多数都使用matplotlib.draw()这样的直接matplotlib命令,这些命令似乎不适用于bloch类。 然后,还有其他解决方案可以使用例如Tk或GTKagg(例如https://stackoverflow.com/a/15742183/3276735real-time plotting in while loop with matplotlib

请问有人可以帮我解决bloch课程中同样的问题吗?

编辑: 这是一个最小的例子:

基本上,我想一次一个点更新我的情节,最好是循环。我的目标是在必须从文件中读取的图中显示实时数据。

import qutip as qt
import numpy as np


b = qt.Bloch()

theta = np.arange(0,np.pi,0.1)

for ii in range(len(theta)):
     b.add_points([np.sin(theta[ii]),0,np.cos(theta[ii])])
     b.show()

1 个答案:

答案 0 :(得分:1)

我认为你打破了你的阴谋,因为你正在为每一点呼唤节目。尝试在循环外调用show(最后)。

java.nio.file.OpenOption[]

编辑: 动画情节

import qutip as qt import numpy as np b = qt.Bloch() theta = np.arange(0,np.pi,0.1) for ii in range(len(theta)): b.add_points([np.sin(theta[ii]),0,np.cos(theta[ii])]) b.show() # Changed here 视为将绘图调用到视图的绝对命令。它不是绘图命令(或重绘)。如果你确实想要每隔一段时间显示一个图像,那就是#34;几秒钟左右,你需要show之前再次调用它。你可以试试这个:

clear

,我目前的发行版中没有QuTip,所以我无法对其进行测试,但我认为它基于matplotlib。 我最好的建议但是您可以在QuTiP文档中使用动画制作。遵循这个食谱:

import qutip as qt
import numpy as np

b = qt.Bloch()

theta = np.arange(0,np.pi,0.1)

for ii in range(len(theta)):
     b.clear()
     b.add_points([np.sin(theta[ii]),0,np.cos(theta[ii])])
     b.show()
     # wait time step and load new value from file.

,您应该能够修改animate函数以执行所需的所有操作。