簡體   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