Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 公开matplotlib直方图更新方法的简单方法_Python_Matplotlib - Fatal编程技术网

Python 公开matplotlib直方图更新方法的简单方法

Python 公开matplotlib直方图更新方法的简单方法,python,matplotlib,Python,Matplotlib,我知道关于更新while循环中的绘图的几个相关问题,但它们并没有完全解决我的问题 我想公开一个尽可能简单的方法,当新数据可用时,我可以调用它来更新绘图。具体的上下文是,我希望参数的直方图在模型的训练循环中经过一定次数的迭代后更新 当我说尽可能简单时——因为我很少更新情节,我完全可以简单地关闭并重新绘制一个新的情节。不幸的是,我无法让它工作——因为训练循环运行了许多单独的图形窗口,在循环终止之前,没有一个窗口显示任何内容 我尝试的第一件事是为绘图创建一个具有更新方法的类,如下所示: class P

我知道关于更新while循环中的绘图的几个相关问题,但它们并没有完全解决我的问题

我想公开一个尽可能简单的方法,当新数据可用时,我可以调用它来更新绘图。具体的上下文是,我希望参数的直方图在模型的训练循环中经过一定次数的迭代后更新

当我说尽可能简单时——因为我很少更新情节,我完全可以简单地关闭并重新绘制一个新的情节。不幸的是,我无法让它工作——因为训练循环运行了许多单独的图形窗口,在循环终止之前,没有一个窗口显示任何内容

我尝试的第一件事是为绘图创建一个具有更新方法的类,如下所示:

class ParamPlot(object):

def __init__(self, model):
    self.model = model
    # model.param_classes is a list different sets of parameters
    n_param_classes = len(model.param_classes)
    self.fig, self.ax_arr = plt.subplots(nrows=n_param_classes)


def update(self):
    plt.clf()
    for params, axis in zip(model.param_classes, self.ax_arr):
        # assume that params is an array
        axis.hist(params, bins=250, normed=True)
    self.fig.canvas.draw()
但这导致大量图形窗口生成,在循环终止之前,没有一个窗口显示任何内容


我如何才能做到这一点?

以下是我如何让它工作的

请注意,
clear
在每个轴上都被调用


它不快,但很简单,而且很有效。

以下是我如何让它工作的

请注意,
clear
在每个轴上都被调用


这不是很快,但很简单,而且很有效。

你看过这个关于“谢谢你”的问题了吗?你看过这个关于“谢谢你”的问题了吗!
class ParamPlot(object):

def __init__(self, model):
    self.model = model
    # model.param_classes is a list different sets of parameters
    n_param_classes = len(model.param_classes)
    self.fig, self.ax_arr = plt.subplots(nrows=n_param_classes)


def update(self):
    for axis in np.ravel(self.ax_arr):
        axis.clear()
    for params, axis in zip(model.param_classes, self.ax_arr):
        # assume that params is an array
        axis.hist(params, bins=250, normed=True)
    plt.draw()