[yt-users] multiplot with multiple datasets

Christine Simpson csimpson at astro.columbia.edu
Mon Mar 21 12:24:45 PDT 2011


Hi JC,

Matt says the yt developers are working on some more sophisticated
imaging capabilities, but in the meantime, this script does something
close to what you want.  It's a bit cumbersome, but it may be helpful to
you.  It plots density slices in the x,y,z directions for two different
datasets in side-by-side columns.  In general, I think you just need to
set up separate plot collections for each dataset you want to plot.  The
tricky part is getting the colorbars to work; the way i've done it
below, you can in can have different colorbars for the two different
columns.:

from yt.mods import * # set up our namespace
import matplotlib.colorbar as cb


fn0 = "DD0007/output_0007"
fn1 = "DD0010/output_0010"


pf0 = load(fn0) # load data
pf1 = load(fn1)

orient = 'horizontal'
fig, axes, colorbars = get_multi_plot( 2, 3, colorbar=orient, bw = 4)

pc0 = PlotCollection(pf0)
pc1 = PlotCollection(pf1)


for ax in range(3):

    p = pc0.add_slice("Density", ax, figure = fig, axes = axes[ax][0],
use_colorbar=False)
    p.set_cmap("bds_highcontrast")
    p.set_zlim(10**(-27),10**(-25)) 


    p = pc1.add_slice("Density", ax, figure=fig, axes=axes[ax][1],
use_colorbar=False)
    p.set_cmap("bds_highcontrast") 
    p.set_zlim(10**(-30),10**(-25)) 
       

pc0.set_width(25.0, 'kpc') 
pc1.set_width(25.0, 'kpc') 


zip_plot = zip(pc0.plots,pc1.plots)
all_plots = [zip_plot[i][j] for i in range(3) for j in range(2)]


for p, cax in zip(all_plots, colorbars):
    
    cbar = cb.Colorbar(cax, p.image, orientation=orient)
    
    p.colorbar = cbar
    p._autoset_label()


fig.savefig("Density_before_after_reion")



On Sun, 2011-03-20 at 17:06 -0700, Matthew Turk wrote:
> Hi Chris and JC,
> 
> You're right; they are not up to date in the build.  It was a mistake
> in how I built the docs last.  I updated all the *API* content, but
> not the content of the *recipes*.  When I get back to my desk tonight
> (I'm out enjoying some Sunday afternoon recreation time right now) I
> will rebuild the docs, but I'll build from the development branch so
> they will reflect the upcoming 2.1 release in a few minor ways, like
> minor shifts in the light cone API.  Sam's release manager for 2.1,
> and last I heard from him he's planning on late this week or early
> next.
> 
> Also, JC, Britton, Sam and Jeff have been working on making it easier
> to do more complicated things with montages and compositing of
> arbitrary images.  They might be able to chime in with more; multiplot
> is kind of a sledge hammer and they're putting the finishing touches
> on their nice set of drill bits and screw drivers.
> 
> Best,
> 
> Matt
> 
> On Sun, Mar 20, 2011 at 4:59 PM,  <chris.m.malone at gmail.com> wrote:
> > I should say, the recipe is up to date (in the hg repository), but the
> > Cookbook website is not. Same goes for the regular Multiplot recipe.
> >
> > Matt, could you update these?
> >
> > Chris
> >
> > On Mar 20, 2011 7:47pm, chris.m.malone at gmail.com wrote:
> >> Hi Jean-Claude,
> >>
> >> Some of the recipes in the Cookbook are a bit outdated - for example,
> >> module names like "raven" have been replaced with more meaningful names.
> >> Actually, now the get_multi_plot() method lives in the plot_collection
> >> module, which is automatically loaded into the namespace when you `from
> >> yt.mods import *`. In other words, change the `raven.get_mult_plot(...)` to
> >> just `get_multi_plot(...)` and it should work ok, although I haven't tested
> >> this.
> >>
> >> Chris
> >>
> >>
> >> On Mar 20, 2011 7:27pm, Jean-Claude Passy jcpassy at gmail.com> wrote:
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > Hi all,
> >> >
> >> >
> >> >
> >> > I would like to create a multi plot equivalent to the procedure
> >> > described in the Cookbook (Multi plot 3x2) BUT with
> >> > different datasets (1 slice for 1 dataset).
> >> >
> >> >
> >> >
> >> > The first issue I am encountering is that the module raven is not
> >> > detected:
> >> >
> >> >
> >> >
> >> > #############################################################
> >> >
> >> > Traceback (most recent call last):
> >> >   File "/rpod2/jcpassy/Enzo/python/MultiPlot.py", line 20,
> >> > in
> >> >     fig, axes, colorbars = raven.get_multi_plot( 2, 4,
> >> > colorbar=orient, bw = 4)
> >> > NameError: name 'raven' is not defined
> >> > #############################################################
> >> >
> >> >
> >> >
> >> > Then, is there a specific description somewhere of how to do a multi
> >> > plot with different datasets ?
> >> >
> >> >
> >> >
> >> > Thanks a lot for your help,
> >> >
> >> >
> >> >
> >> > JC
> >> >
> >> >
> >> >
> >> >
> >> >
> > _______________________________________________
> > yt-users mailing list
> > yt-users at lists.spacepope.org
> > http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> >
> >
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
> 





More information about the yt-users mailing list