在Mac上重新运行脚本时,ipython不会更新数字

时间:2015-01-28 06:28:31

标签: python matplotlib ipython

我还没有能够使用谷歌找到我的问题的答案,所以我会在这里发新帖。

我使用matplotlib和ipython。我将使用一个简单的脚本(称为a.py)来演示我的问题。

#/usr/bin/python3

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.cos(2*x)

plt.plot(x,y)
plt.show()

我可以使用命令"运行a.py"在ipython中运行此脚本(以" ipython -pylab"开头)。它将创建一个带有正确图形的图形窗口。但是,如果我修改代码;让我们说将y改为np.sin(x),然后保存脚本。如果我通过调用&#34再次运行脚本;运行a.py",图形窗口不会改变。此图中不会添加任何新行。这是一个错误还是我误解了什么?我是Python / Ipython / matplotlib的新手。

我使用Mac OS Yosemite,Python34,py34-ipython,py34-matplotlib。谢谢你的日志。

----更新-----

如果我使用     plt.savefig(" C.PDF&#34) 代替     plt.show()

ipython和%run命令的工作方式与我认为应该的方式相同;即,如果我更新脚本,并且%再次运行a.py,则对脚本的更改应反映在图中。

---------更多更新--------

我发现的一个解决方案是使用命令" plt.close()"在任何密谋之前。

1 个答案:

答案 0 :(得分:1)

%run魔法用于在ipython中运行完整脚本。这不完全是你想要做的。您可能想要查看%load魔法

与运行脚本的%run相比,%load可用于将代码拉入当前的ipython会话。

  • 使用%load a.py
  • 进行修改并保存文件a.py
  • 重用%load a.py

应该做的伎俩。