【问题标题】:I plotted multiple plots with a for loop, but I get an (unwanted) extra subplot. How do I get rid of it?我用 for 循环绘制了多个图,但我得到了一个(不需要的)额外的子图。我该如何摆脱它?
【发布时间】:2022-06-21 23:47:37
【问题描述】:

我正在编写一个随机游走模拟器。使用 for 循环,我希望模拟器生成多个数据集,然后将这些数据集绘制在一个图形上。我设法做到了。这是我的代码(包括随机游走模拟器的代码):

#RANDOM WALK SIMULATOR

import matplotlib.pyplot as plt
import numpy as np
def random_walk(random_state_index, initial_position=(0, 0), steps=1000):
    np.random.RandomState(random_state_index)
    X, Y = [initial_position[0]], [initial_position[0]]
    for i in range(steps):
        plt.pause(0.00001)
        # Random step choice
        ways = ["up", "down", "left", "right"]
        direction = np.random.choice(ways, p = [0.3,0.2,0.25,0.25])
        if direction == "up":
            X.append(X[-1])
            Y.append(Y[-1] + 0.1)
        if direction == "down":
            X.append(X[-1])
            Y.append(Y[-1] - 0.1)
        if direction == "left":
            X.append(X[-1] - 0.1)
            Y.append(Y[-1])
        if direction == "right":
            X.append(X[-1] + 0.1)
            Y.append(Y[-1])
    return X,Y

#PLOT
fig, ax = plt.subplots()
for i in range(10):
    X,Y = random_walk(random_state_index = i)
    ax.plot(X,Y)
fig

Ahead 是一个链接,它显示了我的输出的样子。如您所见,我得到了一个额外的空白情节。我想摆脱它,但我很难找出如何: OUTPUT

谢谢!

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    您看到上图的原因是因为它是由 IPython Notebook 内联返回的。为防止这种情况发生,请使用特定的绘图调用(不返回任何内容)plt.show()

    换句话说,您要求该数字两次。一次在单元格底部(当您编写 fig 时),然后再次默认情况下使用内联 matplotlib 绘图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 2022-11-20
      相关资源
      最近更新 更多