我尝试使用Qutip的函数bloch()在bloch球体上绘制实时数据。在
到目前为止,当我有一个b.show()时,代码总是中断。在
我在网上找到了很多类似问题的解决方案,但大多数都使用了直接matplotlib命令,比如matplotlib.draw.绘图()这对bloch类似乎不起作用。 然后,还有其他解决方案,它们利用例如Tk或GTKagg(例如https://stackoverflow.com/a/15742183/3276735或real-time plotting in while loop with matplotlib)
有人能帮我解决这个问题吗?在
编辑: 下面是一个最小的例子:
基本上,我想一次更新一个点,最好是在一个循环中。我的目标是在绘图中显示必须从文件读取的实时数据。在
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()
我认为你破坏了你的计划,因为你把每一点都说出来了。尝试在循环外调用show(最后)。在
编辑:动画情节
将
^{pr2}$show
视为调用绘图视图的绝对命令。这不是绘图命令(或重绘)。{如果你想每隔一秒显示一次图像的话。你可以试试这个:,我在当前的发行版中没有QuTip,所以我不能真正测试它,但我打赌它主要基于matplotlib。不过,我的最佳建议是您在QuTiP文档中使用动画的公式。按照以下方法:
,您应该能够修改animate函数来执行所需的所有操作。在
相关问题 更多 >
编程相关推荐