|   | 1 |  initial version  | 
You could put your plots in a list or matrix, iterate to get their dimensions, compute the max and min values for the y axis in all the plots and draw together the plots using graphics_array. As a proof of concept, consider the following example:
p = []
for i in range(3):
    plt = plot([random()*sin(x),random()*cos(x)],(x,-pi,pi), color=["red","green"])
    p.append(plt)
ym = 1e+20
yM = 1e-20
for i in range(len(p)):
    bounds = p[i].get_minmax_data()
    ym = min(ym, bounds["ymin"])
    yM = max(yM, bounds["ymax"])
graphics_array(p).show(frame=True) # each plot uses its own vertical scale
graphics_array(p).show(ymin=ym,ymax=yM, frame=True) # same scale for all plots
 Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.
 
                
                Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.