我正在尝试绘制一个交互式图像,这将允许我在Google Colab Notebook的输出中绘制线条。我尝试使用下面的代码。在我本地的Jupyter Notebook中运行正常,但在Google colab中却无法运行。
有人可以建议任何解决方法吗?
也尝试添加%matplotlib inline
,但显示了静止图像。
from matplotlib.lines import Line2D
%pylab notebook
%matplotlib inline
#This is needed for plot widgets
class Annotator(object):
def __init__(self, axes):
self.axes = axes
self.xdata = []
self.ydata = []
self.xy = []
self.drawon = False
def mouse_move(self, event):
if not event.inaxes:
return
x, y = event.xdata, event.ydata
if self.drawon:
self.xdata.append(x)
self.ydata.append(y)
self.xy.append((int(x),int(y)))
line = Line2D(self.xdata,self.ydata)
line.set_color('r')
self.axes.add_line(line)
plt.draw()
def mouse_release(self, event):
# Erase x and y data for new line
self.xdata = []
self.ydata = []
self.drawon = False
def mouse_press(self, event):
self.drawon = True
img = np.zeros((28,28,3),dtype='uint8')
fig, axes = plt.subplots(figsize=(3,3))
axes.imshow(img)
plt.axis("off")
plt.gray()
annotator = Annotator(axes)
plt.connect('motion_notify_event', annotator.mouse_move)
plt.connect('button_release_event', annotator.mouse_release)
plt.connect('button_press_event', annotator.mouse_press)
axes.plot()
plt.show()
我希望输出与我的PC中的Jupyter笔记本一样,在Google Colab中是交互式的,但是输出仍然是图像,无法在其上绘制任何内容。
答案 0 :(得分:0)
首先,您必须将colab装入Google云端硬盘中的目录。您可以尝试:
fig = plt.figure()
fig.savefig("your_file_name.png")
from IPython.display import Image
Image("your_file_name.png")