[英]Dynamic graph in matplotlib with multiple graphs in one figure
我设法在matplotlib中设置了一个变量的动态图:
def update_line(hl, new_data):
hl.set_xdata(np.append(hl.get_xdata(), new_data[0]))
hl.set_ydata(np.append(hl.get_ydata(), new_data[1]))
plt.draw()
cost_plot, = plt.plot([], [], 'b-')
plt.xlabel('iter')
plt.ylabel('cost')
plt.axis([0, set_size, 0, 10])
some for:
...
update_line(cost_plot, [iter, cost])
plt.draw()
plt.pause(0.001)
并使用此代码绘制第一个神经网络的成本函数:
现在我想做同样的事情,但是要设置一组突触,所以我想在一个图中绘制多个图,并通过
update_line(plot, [iter, set of next values])
但我真的找不到做到这一点的方法。
我的数据存储在numpy的数组中
编辑: 正确执行后的最终结果
您可能想要这样的东西:
import numpy as np
import matplotlib.pyplot as plt
def update_line(hl, i, new_data):
hl.set_data(np.arange(i+1), new_data[:i+1])
n_data = 2
n_iter = 10
data = np.random.rand(n_data, n_iter)
plt.figure()
plt.xlabel("iter")
plt.ylabel("cost")
plt.axis([0, n_iter, 0, 1])
cost_plots = []
for i in range(n_data):
cost_plot, = plt.plot([], [])
cost_plots.append(cost_plot)
for i in range(n_iter):
for j, cost_plot in enumerate(cost_plots):
update_line(cost_plot, i, data[j])
plt.draw()
plt.pause(0.1)
我创建了cost_plots列表,并将其传递给您的函数update_line。 在每次迭代中,我循环并更新不同的图,并在迭代结束时更新图形。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.