我是 Python 新手。我一直在努力让自己熟悉 Numpy、Scipy 和 Matplotlib,因为我有科学背景,并希望让自己成为在神经科学实验室工作的更有竞争力的候选人。
我一直在浏览 Matplotlib 文档,尝试通过示例学习。我将从以下 URL 中引用一个示例:http: //matplotlib.org/users/pyplot_tutorial.html
我的印象是这些示例是用 Python 3.x 编写的,并且我遇到了麻烦,因为我使用的是 Python 2.7。我正在使用 2.7,因为我想要的一些库不适用于 3.x。
该网站给出了使用子图的示例。他们的代码如下:
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
这应该返回一个像这样的图:http: //i.stack.imgur.com/ejNDu.png
当我将相同的代码复制到 IDLE 中时,它给了我一个错误。在线上
t1 = np.arange(0.0, 5.0, 0.1)
, IDLE 告诉我“t1”是无效的语法。
我的第一个问题:使用 t1 作为变量有什么问题?
如果我复制类似的代码,但进行一些调整,我可以避免这个错误。但是,然后我遇到了另一个错误。当我添加相当于
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
, IDLE 向我显示错误:
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
plt.plot(ty, f(tx), 'bo', ty, f(ty), 'k')
NameError: name 'f' is not defined
我不确定 Python 如何期望我将“f”与函数“f(t)”分开定义。
我的第二个也是主要问题:有人可以解释为什么必须单独定义“f”吗?如何在 Python 2.7 中正确使用这样的函数?
如果有人需要我解释这里使用的 Numpy/Matplotlib 机制,我会尽我所能解释它们是如何产生图表的。