Figure在 Matplotlib 中,我可以通过调用对象(例如,fig调用方法show( ))来更新图中绘图的视觉效果fig.show()。但我也可以通过调用canvas图中的对象然后调用方法draw( fig.canvas.draw()) 来做到这一点。
例子:
import matplotlib.pyplot as plt
fig, axes = plt.subplots()
axes.plot([1,2,3],[2,3,4])
fig.show()
axes.plot([1,2,3],[-2,23,14])
fig.show()
Run Code Online (Sandbox Code Playgroud)
和
import matplotlib.pyplot as plt
fig, axes = plt.subplots()
axes.plot([1,2,3],[2,3,4])
fig.show()
axes.plot([1,2,3],[-2,23,14])
fig.canvas.draw()
Run Code Online (Sandbox Code Playgroud)
我怀疑他们fig.show也会表演self.canvas.draw()和其他一些事情。但是当我检查代码时,我只看到它可能会调用self.canvas.draw_idle().
fig.show, fig.canvas.draw,之间有什么区别fig.canvas.draw_idle??
据我所知,当我们只想使用这些值一次时,我们可以使用生成器。使用下面的 2 个示例,我的逻辑是第二个应该更快,因为第一个首先创建一个列表,然后循环遍历值..而第二个仅处理来自生成器的值。然而,当我计算时间时,列表理解总是比生成器更快。为什么是这样?
第一:
x = []
a = time.perf_counter()
for j in [i**2 for i in range(20000)]:
x.append(j)
print( time.perf_counter() - a )
Run Code Online (Sandbox Code Playgroud)
第二:
x = []
a = time.perf_counter()
for j in (i**2 for i in range(20000)):
x.append(j)
print( time.perf_counter() - a )
Run Code Online (Sandbox Code Playgroud)