cqc*_*991 12 python matplotlib
我想创建一个带有函数的图,它将返回一个图,以便稍后我可以在需要时重新显示它.
功能如下:
def simple_plot(ax = None):
if ax is None:
fig, ax = plt.subplots()
a = [1,2,3,4]
b = [3,4,5,6]
plt.plot(a, b,'-', color='black')
return fig
Run Code Online (Sandbox Code Playgroud)
如果我跑simple_plot(),它会打印两次图,如下所示:
注意:如果我跑fig = simple_plot(),它只会打印一次,我可以fig用来在以后再现该图Ipython Notebook
如果我跑的话怎么才能打印一次simple_plot()呢?
我不确定我是否正确定义了函数,定义一个函数来制作图是一个好方法?
fog*_*rit 13
这是Jupyter笔记本电脑自动显示功能的副作用.无论何时调用plt.plot()它都会触发绘图的显示.但是,每当图形对象被引用为单元格的最后一个语句时,触发另一个显示.当单元格中的最后一个语句是赋值(fig = simple_plot())时,不会触发最后一个显示,因此您看不到第二个图.
要防止显示第二个图(或自动显示任何原始引用),只需在单元格中最后一个语句的末尾添加一个分号.例如,呼叫simple_plot();只会显示一个情节.
小智 11
只需添加plt.close()before return,就像这样:
def simple_plot(ax = None):
if ax is None:
fig, ax = plt.subplots()
a = [1,2,3,4]
b = [3,4,5,6]
plt.plot(a, b,'-', color='black')
plt.close()
return fig
Run Code Online (Sandbox Code Playgroud)