Python 向现有matplotlib图表添加第二个绘图

Python 向现有matplotlib图表添加第二个绘图,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,我希望有一个函数,可以在调用时将绘图添加到现有图表中。现在我的空绘图显示,但调用函数似乎从未发生,因为它一直等到我关闭图表窗口。然后程序结束,不重新打开图表窗口 import numpy as np import matplotlib.pyplot as plt import time fig, ax = plt.subplots() plt.show() def plotting(slope, intercept): x_vals = np.array(ax.get_xlim())

我希望有一个函数,可以在调用时将绘图添加到现有图表中。现在我的空绘图显示,但调用函数似乎从未发生,因为它一直等到我关闭图表窗口。然后程序结束,不重新打开图表窗口

import numpy as np
import matplotlib.pyplot as plt
import time

fig, ax = plt.subplots()
plt.show()
def plotting(slope, intercept):

    x_vals = np.array(ax.get_xlim())
    y_vals = intercept + slope * x_vals
    ax.plot(x_vals, y_vals, '-')
    plt.show()

plotting(10,39)
time.sleep(1)
plotting(5,39)

将可选关键字参数
block=False
发送到
plt.show()

说明:绘图窗口阻止程序继续。发送此参数将允许程序继续。 请注意,如果仅使用该参数且程序结束,则绘图窗口将关闭。因此,您可能希望在程序结束时调用
plt.show(block=True)
plt.waitforbuttonpress()


就我个人而言,我会为您自己的函数添加一个块参数:

def plotting(slope, intercept, block=True):

    x_vals = np.array(ax.get_xlim())
    y_vals = intercept + slope * x_vals
    ax.plot(x_vals, y_vals, '-')
    plt.show(block=block)

plotting(10,39,False)
time.sleep(1)
plotting(5,39)

将可选关键字参数
block=False
发送到
plt.show()

说明:绘图窗口阻止程序继续。发送此参数将允许程序继续。 请注意,如果仅使用该参数且程序结束,则绘图窗口将关闭。因此,您可能希望在程序结束时调用
plt.show(block=True)
plt.waitforbuttonpress()


就我个人而言,我会为您自己的函数添加一个块参数:

def plotting(slope, intercept, block=True):

    x_vals = np.array(ax.get_xlim())
    y_vals = intercept + slope * x_vals
    ax.plot(x_vals, y_vals, '-')
    plt.show(block=block)

plotting(10,39,False)
time.sleep(1)
plotting(5,39)
plt.show()。它将阻塞,直到打印窗口关闭

您可以使用交互模式(
plt.ion()
)并在中间步骤(
plt.draw()
)绘制绘图。要获得暂停,请不要使用
time.sleep()
,因为它会让应用程序完全休眠(可能导致冻结窗口)。相反,请使用
plt.pause()
。最后,您可以再次关闭交互模式(
plt.ioff()
),并最终调用
plt.show()
,以使绘图保持打开状态

import numpy as np
import matplotlib.pyplot as plt

plt.ion()
fig, ax = plt.subplots()

def plotting(slope, intercept):

    x_vals = np.array(ax.get_xlim())
    y_vals = intercept + slope * x_vals
    ax.plot(x_vals, y_vals, '-')
    plt.draw()

plotting(10,39)
plt.pause(1)
plotting(5,39)

plt.ioff()
plt.show()
plt.show()。它将阻塞,直到打印窗口关闭

您可以使用交互模式(
plt.ion()
)并在中间步骤(
plt.draw()
)绘制绘图。要获得暂停,请不要使用
time.sleep()
,因为它会让应用程序完全休眠(可能导致冻结窗口)。相反,请使用
plt.pause()
。最后,您可以再次关闭交互模式(
plt.ioff()
),并最终调用
plt.show()
,以使绘图保持打开状态

import numpy as np
import matplotlib.pyplot as plt

plt.ion()
fig, ax = plt.subplots()

def plotting(slope, intercept):

    x_vals = np.array(ax.get_xlim())
    y_vals = intercept + slope * x_vals
    ax.plot(x_vals, y_vals, '-')
    plt.draw()

plotting(10,39)
plt.pause(1)
plotting(5,39)

plt.ioff()
plt.show()