0

我有一个拥有一些 matplotlib 图形、轴、艺术家等的类。它具有用于操作和显示这些的功能,这些功能在使用类的实例时都可以正常工作。

但是,如果用户想要在包含我的班级实例的笔记本的另一个单元格中制作一些单独的 matplotlib 图,则当用户调用 plt.show() 来显示他们自己的数字时,将显示所有班级的数字。

我正在使用 ipympl,%matplotlib widget并设置 plt.ioff()。

有没有办法让我设置我的数字,以便在调用 plt.show() 时不显示它们?

示例:考虑这两个 Jupyter Notebook 单元格(必须拆分才能显示第一个图形)

%matplotlib widget
import matplotlib.pyplot as plt
plt.ioff()

class interactiveplot(object):
    def __init__(self, x, y):
        plt.ioff()
        self.fig,self.ax = plt.subplots(figsize=(2,2))
        self.plot, = self.ax.plot(x,y)
    def update(self,x,y):
        self.plot.set_data(x,y)
        self.fig.canvas.draw()
    def show(self):
        return self.fig.canvas

#create class instance
test = interactiveplot([1,2,3,4],[4,1,5,7])
#display figure
test.show()
#Change data in displayed figure
test.update([2,3],[6,5])

#display a plot of something totally unrelated
fig,ax = plt.subplots(figsize=(2,2))
ax.scatter([2.3,3.4],[34,23])
plt.show()
#Both test.fig and fig are displayed!  I only want to see fig!
4

0 回答 0