繁体   English   中英

如何使用Matplotlib绘制不完整的数据

[英]How to plot incomplete data with matplotlib

我正在做一些处理,我想绘制进度。 我知道我的总奔跑次数,我每100个奔跑计算一次结果,并且每次都想生成一个新图。 所以,我的代码看起来像这样

start = time.time()
speeds = []
for step in range(steps):
    do_my_stuff()
    if step % 100 == 0:
        speeds.append((step + 1) / (time.time() - start))
        x = np.arrange(steps)
        y = np.array(speeds)
        plt.plot(x, y, 'ro')

而且,当然,我收到“ x和y必须具有相同的第一维”错误。 看来这是一个简单而常见的问题,但是由于某种原因,我无法找到一个合适的解决方案。 我可能不是在寻找正确的东西。 我想念什么?

更新#1:让自己更加清楚。 我想每隔100次迭代就重画一次绘图。 我希望该图反映当前累计的速度点。 我希望它从0扩展到最大步长,并且希望它在没有计算速度的地方为空。

我将交互地绘制每对x和y,并将图的极限设置为所需的值。 如果以后需要,您仍然可以附加数据。 看这个例子:

import time
import matplotlib.pyplot as plt
import matplotlib

plt.ion()

fig = plt.figure(1,figsize=(5,5))
ax  = fig.add_subplot(111)
steps = 1000
ax.set_xlim(0,steps)
ax.plot(1,1)
plt.draw()

start = time.time()
speeds = []
for step in range(steps):
    #Your stuff here
    if step % 100 == 0:
        speed = (step + 1.0) / (time.time() - start)
        plt.plot(step, speed, 'ko')
        plt.draw()
        plt.pause(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM