如何在python中的同一窗口中继续绘图?

时间:2015-10-16 17:22:21

标签: python matplotlib plot

我在弄清楚如何在同一个绘图窗口中进行绘图时遇到了问题(我希望我的绘图在单个绘图之后在同一个窗口中完成,即我不想关闭窗口以获得到其他情节)。我可以使用绘图窗口底部的箭头切换到下一个图吗? 这是我的代码:

for iteration in range(0, max_iters):
    idx = findClosestCentroids(X, centroids)
    centroids = computeCentroids(X, idx, K)

    if plot is True:
        data = c_[X, idx]
        for i in range(1, K + 1):
            data_1 = data[data[:, n] == i]
            pyplot.plot(data_1[:, 0], data_1[:, 1], linestyle=' ', color=dict[i - 1], marker='o', markersize=3)

        pyplot.plot(centroids[:, 0], centroids[:, 1], 'k*', markersize=15)
        pyplot.show(block=True)
        pyplot.hold(True)

下面, 数据是m X n + 1矩阵,第n列的值介于1到K之间, 质心是k X n矩阵, idx 是m X 1矩阵

1 个答案:

答案 0 :(得分:1)

从不使用pyplot绘制任何内容。它唯一真正有用的是创造人物,轴和一些艺术家。

如果不运行您的示例,我会这样做:

for iteration in range(0, max_iters):
    fig, ax = plt.subplots()
    idx = findClosestCentroids(X, centroids)
    centroids = computeCentroids(X, idx, K)

    if plot is True:
        data = c_[X, idx]
        for i in range(1, K + 1):
            data_1 = data[data[:, n] == i]
            ax.plot(data_1[:, 0], data_1[:, 1], linestyle=' ', color=dict[i - 1], marker='o', markersize=3)

        ax.plot(centroids[:, 0], centroids[:, 1], 'k*', markersize=15)

    fig.show()