Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib Julia中的PyPlot仅在代码结束时显示绘图_Matplotlib_Julia - Fatal编程技术网

Matplotlib Julia中的PyPlot仅在代码结束时显示绘图

Matplotlib Julia中的PyPlot仅在代码结束时显示绘图,matplotlib,julia,Matplotlib,Julia,我最近开始学习使用Julia,从Matlab/Octave转换过来。我决定获得一些经验的最好方法是转换一些我已经在做的代码I倍频程-一个解决复杂多维问题的牛顿解算器。我已经能够成功地转换代码(并且相对于倍频程有明显的加速,没有开发或其他基于性能的更改),只出现了一个问题 我选择使用PyPlot进行绘图,因为它与Matlab/Octave的绘图功能相似。然而,PyPlot中存在一些不受欢迎的行为。我使用plotting函数来显示我试图归零的向量的当前状态(使用代码中的Newton solver部分

我最近开始学习使用Julia,从Matlab/Octave转换过来。我决定获得一些经验的最好方法是转换一些我已经在做的代码I倍频程-一个解决复杂多维问题的牛顿解算器。我已经能够成功地转换代码(并且相对于倍频程有明显的加速,没有开发或其他基于性能的更改),只出现了一个问题

我选择使用PyPlot进行绘图,因为它与Matlab/Octave的绘图功能相似。然而,PyPlot中存在一些不受欢迎的行为。我使用plotting函数来显示我试图归零的向量的当前状态(使用代码中的Newton solver部分),这样我就可以看到它在做什么,并调整代码以尝试改进这种行为。在代码停止之前,我输入牛顿步数,然后我可以进行调整或重新发出命令以继续尝试收敛

我将代码设置为每隔几步绘制一次当前状态,因此,例如,我可以让代码执行200步,但每执行10步后显示一次状态。在Octave中,这非常有效,为我提供了最新信息-如果代码的行为不理想,我可以使用Ctrl-C快速取消代码(这部分在Julia中也适用)

但是,使用plot()命令时,Julia不会生成或更新绘图;相反,只有在代码完成时,它才会生成打印,或者在打印窗口已打开时更新打印。这完全违背了代码中间歇性绘图的目的。代码完成后,将正确生成绘图,因此我知道plot()命令本身正在正确使用

我尝试在plot命令之后立即添加draw()或show()。我还尝试了display(gcf())。所有这些都没有改变结果。我已确认isinteractive()输出“true”。我还尝试过关闭交互性(ioff())并切换是否使用python或julia后端(pygui(true)和pygui(false)),但对这种行为没有影响

我错过什么了吗?是否需要设置另一个包或选项以强制PyPlot立即生成当前绘图,而不是等到Julia完成其当前代码运行才能生成绘图

或者,当间歇打印发生在while循环中时,可能是scope导致了问题吗


我将xubuntu 12.10与Julia 0.2.1一起使用。

PyPlot在REPL中默认使用此行为。要使其在打印时显示打印,请键入
ion()
。要再次关闭它,请键入
ioff()

ion()
仅对本季有效,因此如果您希望它在整个会话期间保持有效,只需将其添加到.juliarc文件中即可


如果您使用的是iPython
ion()
将打印到新窗口,但
ioff()
将内联打印。

@Isaiah-谢谢-也许您可以将其作为答案发布(直接提到“收益”),这样我就可以将其标记为正确答案,给您打分,让其他寻求解决这个问题的人更容易。我搜索了很多关于如何解决这个问题的信息,但PyPlot问题页面从来没有出现在我面前。最近有一次讨论可能与谷歌集团有关。