У меня есть ряд функций, которые возвращают три объекта сюжета (фигура, ось и график), и я хотел бы объединить их в одну фигуру как подзаголовки. Я привел пример кода:matplotlib subplots из объектов сюжета
import matplotlib.pyplot as plt
import numpy as np
def main():
line_fig,line_axes,line_plot=line_grapher()
cont_fig,cont_axes,cont_plot=cont_grapher()
compound_fig=plot_compounder(line_fig,cont_fig)#which arguments?
plt.show()
def line_grapher():
x=np.linspace(0,2*np.pi)
y=np.sin(x)/(x+1)
line_fig=plt.figure()
line_axes=line_fig.add_axes([0.1,0.1,0.8,0.8])
line_plot=line_axes.plot(x,y)
return line_fig,line_axes,line_plot
def cont_grapher():
z=np.random.rand(10,10)
cont_fig=plt.figure()
cont_axes=cont_fig.add_axes([0.1,0.1,0.8,0.8])
cont_plot=cont_axes.contourf(z)
return cont_fig,cont_axes,cont_plot
def plot_compounder(fig1,fig2):
#... lines that will compound the two figures that
#... were passed to the function and return a single
#... figure
fig3=None#provisional, so that the code runs
return fig3
if __name__=='__main__':
main()
Было бы очень полезно объединить набор графиков в один с функцией. Кто-нибудь делал это раньше?
Спасибо, дело в том, что я не могу передать ось в качестве аргумента функции, и мои функции построения графика возвращают эти три объекта каждый раз. Я пробовал: 'axarr [0] = line_grapher() [1]; axarr [1] = cont_grapher() [1] ' Но я получаю три цифры. – YoungPadawan
Если ваши функции вызывают 'plt.figure', тогда они будут создавать свои цифры. Почему ваши функции должны возвращать эти три объекта? –
Я работаю с двумя уже существующими функциями и принимаю ряд аргументов для создания фигур на заказ. Я не могу изменить их с тем, что я делаю, поэтому я не могу передать ось в качестве аргумента. – YoungPadawan