Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

matplotlib: How to return a matplotlib object then plot as subplot?

I checked this SO Matplotlib returning a plot object but it does not really fit to my question.

What I would like to do is:

def func1():
   fig1 =  plt.plot (np.arange(0.0, 5.0, 0.1))
   return fig1

def func2()
   return plt.plot (np.arange(0.0, 5.0, 0.02))


fig1 = func1()
fig2 = func2()
plt.figure()
plt.add_subplot(fig1)
plt.add_subplot(fig2)
plt.show()

The above code is just a main idea. Could you suggest me how to do?

Thanks

like image 708
mommomonthewind Avatar asked Aug 28 '18 09:08

mommomonthewind


People also ask

How do I return a figure from a function in matplotlib?

MatPlotLib with Python Make a function plot(x, y) that creates a new figure or activate an existing figure using figure() method. Plot the x and y data points using plot() method; return fig instance. Call plot(x, y) method and store the figure instance in a variable, f. To display the figure, use show() method.

What does PLT show () return?

matplotlib.pyplot.show() Function Returns: This method does not return any value.


1 Answers

The idea would be to let your functions plot to an axes. Either you provide this axes as argument to the function or you let it take the current axes.

import matplotlib.pyplot as plt
import numpy as np

def func1(ax=None):
    ax = ax or plt.gca()
    line, = ax.plot (np.arange(0.0, 5.0, 0.1))
    return line

def func2(ax=None):
    ax = ax or plt.gca()
    line, = ax.plot (np.arange(0.0, 5.0, 0.02))
    return line


fig, (ax1,ax2) = plt.subplots(ncols=2)
func1(ax1)
func2(ax2)

plt.show()
like image 50
ImportanceOfBeingErnest Avatar answered Sep 20 '22 22:09

ImportanceOfBeingErnest