如何使用 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()
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()