[yt-users] multiplot with multiple datasets

Jean-Claude Passy jcpassy at gmail.com
Tue Mar 22 00:40:09 PDT 2011


Thanks Matt (and Christine), it worked perfectly.

I like your suggestion a lot but I think we should rather call it the 
"RETURN of the Particle" ;-)

Cheers,

JC

On 22/03/11 16:49, Matthew Turk wrote:
> Hi JC,
>
> On Mon, Mar 21, 2011 at 9:57 PM, Jean-Claude Passy<jcpassy at gmail.com>  wrote:
>> Hi Christine,
>>
>> thanks a lot for your script, it does exactly what I need.
>>
>> The last thing I would need is being able to overplot the particles
>> positions and the velocity field. I tried to add the following after
>> creating the slice:
>>
>> ######################################################
>> p = pc0.plots[-1].modify["velocity"]() p =
>> pc0.plots[-1].modify["particles"](width=10, p_size=10.0, col='g')
>> ######################################################
>>
>> Although it does not make the code break, the slices remain unchanged.
> Sorry to jump in, but if you do this, you should be able to call
> either pc0.plots[-1]._redraw_image() or, if thatm odifies the color
> bars (it might, depending on how the script is written) you can call
> pc0.plots[-1]._run_callbacks() to manually run them.  The reason that
> the particles don't get plotted immediately is because they're
> supposed to be 'view independent' so they don't get drawn until the
> image is ready to be written out.
>
> Hope that works,
>
> Matt
>
> PS I was just thinking earlier today that one of your first emails to
> me, years ago, was with the subject line "The Particle Strikes Back."
> I guess this one could be "Revenge of the Particle"?
>
>> Do you have any idea how to make it work ? If not, I will follow Britton's
>> advice and dig a little bit more into the more complex yt-advanced-plotting
>> rep.
>>
>> Thanks a lot,
>>
>> JC
>>
>>
>> On 22/03/11 06:24, Christine Simpson wrote:
>>
>> 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
>>
>>
>> _______________________________________________
>> 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
>>
>>
> _______________________________________________
> 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