Python实时绘图,重新更新

时间:2018-07-02 18:33:17

标签: python matplotlib plot

我想要两个图(#1,#2)。我想在数据即将更新时更新绘图#1,然后也更新绘图#2。在此之后,我可能要返回并更新图1。但是,我无法更新剧情#1。有帮助吗?

这是我的源代码。

import matplotlib.pyplot as plt
import numpy as np
a = np.random.random(10)
b = np.random.random(10)

plt.subplot(311)
for i in range (10):
    y = a[i]
    x = b[i]
    plt.scatter(x,y)
    plt.pause(0.05)



plt.subplot(312)
for i in range (10):
    x = a[i]
    y = b[i]
    plt.scatter(x,y)
    plt.pause(0.05)

# update plot #1, but this doesn't work
aa = np.random.random(20)
bb = np.random.random(20)
plt.subplot(311)
for i in range (20):
    y = aa[i]
    x = bb[i]
    plt.scatter(x,y)

plt.show()

1 个答案:

答案 0 :(得分:1)

plt.subplot用于创建新的子图。如果您不仅要在创建子图后立即访问它们,请选择

fig, axs = plt.subplots(2)

用于首先创建具有所有子图的图形。 然后你可以用

axs[0].plot(...)
axs[1].plot(...)
axs[0].plot(...)

plt.subplots(nrows, ncols)也适用于绘图的二维数组。那么axs也是2D数组。

除此之外,plt.subplots具有非常方便的方式,可以通过kwargs sharexsharey来定义共享轴,它们可以是['all', 'row', 'col', 'none']之一。