У меня есть класс, который владеет некоторыми фигурами Matplotlib, топорами, художниками и т. Д. c. У него есть функции для манипулирования ими и их отображения, которые отлично работают при работе с экземплярами класса.
Однако, если пользователь хочет создать несколько отдельных графиков 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!