How to have a function return a figure in python (

2019-04-07 23:44发布

Assume that I have some data, and I want to create a plot of this data by passing it to a custom plotting function (myplot()). I am using the matplotlib's modules in myplot().

I would like myplot() to return the handle to a figure, and not plot display the plot when I call this function. Here is a sample code and output from iPython.

enter image description here

I have two questions regarding this:

  1. Why do I still see a plot, even though I am assigning the output of myplot() to f?
  2. What do I need to supress this plot when I am assigning the output of myplot() to a variable?

2条回答
爷、活的狠高调
2楼-- · 2019-04-08 00:09

If you do not want to start the whole notebook in non-inline-modus you can just use the following code:

%config InlineBackend.close_figures = False

def myplot(t,x):
    fig = figure()
    x = plot(t,x)
    fig.savefig('plot.png') # This is just to show the figure is still generated
    return fig

t = arange(0,6,0.01)
x = sin(t)

f = myplot(t,x)
查看更多
劫难
3楼-- · 2019-04-08 00:32

Start ipython with

ipython notebook

rather than

ipython notebook --pylab=inline

enter image description here

查看更多
登录 后发表回答