如何使用 Matplotlib 在 Spyder 中绘制图形?

How can I plot graphs in Spyder using Matplotlib?

Python 3,Spyder 2。

当我 运行 以下代码时,我希望在输入浮点数时显示情节 'a' + Enter。如果我随后输入一个新的 'a',我希望图表使用新的 'a' 进行更新。但是 Spyder 直到我只按 Enter 键才显示图表,这打破了循环。我尝试了 Inline 和 Automatic,同样的问题。

import matplotlib.pyplot as plt
L1 = [10.1, 11.2, 12.3, 13.4, 14.5, 13.4, 12.3, 11.1, 10.0]
done = False
while not done:
    a = input("Please enter alpha (between 0 and 1), Enter to exit:")
    if a == "":
        done = True
    else:
        a = float(a)
        L2 = [x * a for x in L1]
        plt.plot(L1)
        plt.plot(L2)

很难说为什么图不显示;尝试添加 plt.show()?

这个例子在我的系统上运行流畅。请注意,如果您真的想更新图表(而不是每次输入新的 a 时都添加新行,您需要更改其中一行的 ydata,例如:

import matplotlib.pyplot as plt
import numpy as np

L1 = np.array([10.1, 11.2, 12.3, 13.4, 14.5, 13.4, 12.3, 11.1, 10.0])
p1 = plt.plot(L1, color='k')
p2 = plt.plot(L1, color='r', dashes=[4,2])[0]
plt.show()

done = False
while not done:
    a = input("Please enter alpha (between 0 and 1), Enter to exit:")
    if a == "":
        done = True
    else:
        L2 = L1.copy() * float(a)
        p2.set_ydata(L2)

        # Zoom to new data extend
        ax = plt.gca()
        ax.relim()
        ax.autoscale_view()

        # Redraw
        plt.draw()