[yt-users] adapting multi plot - 3 plots

Matthew Turk matthewturk at gmail.com
Thu Nov 4 09:09:05 PDT 2010


Also, sorry to reply to my own email, but I also just discovered that
you need to add:

p._redraw_image()

inside your loop, or else the colormaps will inconsistently update.
This is a known yt bug that the PlotWindow work is designed to solve.
Apologies...

-Matt

On Thu, Nov 4, 2010 at 12:08 PM, Matthew Turk <matthewturk at gmail.com> wrote:
> Hi Libby,
>
> "cold" doesn't exist as a colormap:
>
> http://www.scipy.org/Cookbook/Matplotlib/Show_colormaps
>
> So it's throwing an error when it tries to load that colormap --
> "None" is returned by some function along the way (maybe
> matplotlib.cm.get_cmap ?) when asked for "cold" and then it tries to
> call cold.
>
> Maybe you want "cool" instead?
>
> -Matt
>
> On Thu, Nov 4, 2010 at 12:04 PM, Elizabeth Harper-Clark
> <h-clark at astro.utoronto.ca> wrote:
>> Ah, upon further testing the error seems to be related to plotting
>> HII_fraction rather than 3 plots. However, I am able to plot HII fraction
>> slices fine with the below script:
>>
>> from yt.mods import *
>> import pylab
>> import sys
>> import cmath
>> import matplotlib.ticker
>>
>> rho_min = 1e-24
>> rho_max = 2e-24
>>
>> ss = 1
>> centre = (0.511901,  0.452331,  0.434998)
>> frame_template = "aaSN/%s/ionisationframezoom_%01i_%04i"
>>
>> for n in range(132,401,1): # make density projection with particles on
>>     print "Dump:", n
>>     pf = load("SciNet/%s/DD%04i/data%04i" % (sys.argv[-1],n, n))
>>     pc = PlotCollection(pf, center=centre)
>>     Timemyr = pf["InitialTime"]*pf["years"]/1.e6
>>     print "Time(code units):", pf["InitialTime"]
>>     for ax in range(3):
>>         p = pc.add_slice("HII_Fraction", ax)
>>         p.set_width(ss, 'pc')
>>         sp = pf.h.all_data()
>>         if na.any(pf.h.grid_particle_count):
>>             colours = sp["ParticleMassMsun"]
>>             p.modify["particles"](ss, p_size=6.0, col='k', minimum_mass=
>> 6e-26)
>>             print "          XXXXX Particles present XXXXX"
>>         p.modify["text"]((0.101,0.899),"Time = %8.4f Myr" % (Timemyr),
>> text_args = {'color':'k'})
>>         p.modify["text"]((0.1,0.9),"Time = %8.4f Myr" % (Timemyr), text_args
>> = {'color':'w'})
>>         pc.save(frame_template % (sys.argv[-1],ax,n), override=True)
>>
>> ????
>>
>> On 4 November 2010 11:56, Elizabeth Harper-Clark <h-clark at astro.utoronto.ca>
>> wrote:
>>>
>>> Hi all,
>>>
>>> I have adapted the multi plot script from the cookbook an dit all works as
>>> long as I only want 2 plot. When I try to increase to three I get:
>>>
>>> [h-clark at tpb4 my_scripts]$ python2.6 MultiPlot.py GMCsetup3
>>> 1.0 0.714285714286
>>> yt         INFO       2010-11-04 11:53:30,115 Created plot collection with
>>> default plot-center = [0.51190100000000005, 0.45233099999999998, 0.434998]
>>> yt         INFO       2010-11-04 11:53:30,127 Getting the binary hierarchy
>>> yt         INFO       2010-11-04 11:53:30,160 Finished with binary
>>> hierarchy reading
>>> yt         INFO       2010-11-04 11:53:30,253 Adding PotentialField to
>>> list of fields
>>> yt         INFO       2010-11-04 11:53:30,254 Adding AccelerationField1 to
>>> list of fields
>>> yt         INFO       2010-11-04 11:53:30,254 Adding HeII_gamma to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,254 Adding RadAccel1 to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,254 Adding RadAccel2 to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,255 Adding RadAccel3 to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,255 Adding HI_kph to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,255 Adding HeII_kph to list of
>>> fields
>>> yt         INFO       2010-11-04 11:53:30,255 Adding HI_gamma to list of
>>> fields
>>> [0 0 0]
>>> yt         INFO       2010-11-04 11:53:31,962 Added slice of Density at x
>>> = 0.511901 with 'center' = [0.51190100000000005, 0.45233099999999998,
>>> 0.434998]
>>> yt         INFO       2010-11-04 11:53:33,265 Added slice of Temperature
>>> at x = 0.511901 with 'center' = [0.51190100000000005, 0.45233099999999998,
>>> 0.434998]
>>> yt         INFO       2010-11-04 11:53:34,933 Added slice of HII_Fraction
>>> at x = 0.511901 with 'center' = [0.51190100000000005, 0.45233099999999998,
>>> 0.434998]
>>> Traceback (most recent call last):
>>>   File "MultiPlot.py", line 34, in <module>
>>>     fig.savefig(frame_template % (sys.argv[-1],ax,n))
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/figure.py", line
>>> 1032, in savefig
>>>     self.canvas.print_figure(*args, **kwargs)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/backend_bases.py",
>>> line 1476, in print_figure
>>>     **kwargs)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/backends/backend_agg.py",
>>> line 358, in print_png
>>>     FigureCanvasAgg.draw(self)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/backends/backend_agg.py",
>>> line 314, in draw
>>>     self.figure.draw(self.renderer)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/artist.py", line
>>> 46, in draw_wrapper
>>>     draw(artist, renderer, *args, **kwargs)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/figure.py", line
>>> 773, in draw
>>>     for a in self.axes: a.draw(renderer)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/artist.py", line
>>> 46, in draw_wrapper
>>>     draw(artist, renderer, *args, **kwargs)
>>>   File "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/axes.py",
>>> line 1701, in draw
>>>     im.draw(renderer)
>>>   File
>>> "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/artist.py", line
>>> 46, in draw_wrapper
>>>     draw(artist, renderer, *args, **kwargs)
>>>   File "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/image.py",
>>> line 237, in draw
>>>     im = self.make_image(renderer.get_image_magnification())
>>>   File "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/image.py",
>>> line 182, in make_image
>>>     x = self.to_rgba(self._A, self._alpha)
>>>   File "/home/h-clark/YT/lib/python2.6/site-packages/matplotlib/cm.py",
>>> line 167, in to_rgba
>>>     x = self.cmap(x, alpha=alpha, bytes=bytes)
>>> TypeError: 'NoneType' object is not callable
>>>
>>>
>>> My Script is:
>>>
>>> from yt.mods import *
>>> import matplotlib.colorbar as cb
>>>
>>> orient = 'horizontal'
>>> frame_template = "aaSN/%s/multiplot_%01i_%04i"
>>> centre = (0.511901,  0.452331,  0.434998)
>>> ax = 0
>>> ss = 1
>>> n = 134
>>>
>>> pf = load("SciNet/%s/DD%04i/data%04i" % (sys.argv[-1],n, n))
>>> fig, axes, colorbars = get_multi_plot( 3, 1, colorbar=orient, bw = 4)
>>> pc = PlotCollection(pf, center=centre)
>>>
>>> p = pc.add_slice("Density", ax, figure = fig, axes = axes[0][0],
>>> use_colorbar=False)
>>> p.set_cmap("bds_highcontrast")
>>> p = pc.add_slice("Temperature", ax, figure=fig, axes=axes[0][1],
>>> use_colorbar=False)
>>> p.set_cmap("hot")
>>> p = pc.add_slice("HII_Fraction", ax, figure=fig, axes=axes[0][2],
>>> use_colorbar=False)
>>> p.set_cmap("cold")
>>>
>>> p.set_width(ss, 'pc')
>>> for p, cax in zip(pc.plots, colorbars):
>>>     cbar = cb.Colorbar(cax, p.image, orientation=orient)
>>>     p.colorbar = cbar
>>>     p._autoset_label()
>>> fig.savefig(frame_template % (sys.argv[-1],ax,n))
>>>
>>>
>>>
>>> What am I missing?
>>>
>>> many thanks,
>>>
>>> Libby
>>>
>>> --
>>> Elizabeth Harper-Clark MA MSci
>>> PhD Candidate, Canadian Institute for Theoretical Astrophysics, UofT
>>> Sciences and Engineering Coordinator, Teaching Assistants' Training
>>> Program, UofT
>>>
>>> www.astro.utoronto.ca/~h-clark
>>> h-clark at cita.utoronto.ca
>>> Astronomy office phone: +1-416-978-5759
>>
>>
>>
>> --
>> Elizabeth Harper-Clark MA MSci
>> PhD Candidate, Canadian Institute for Theoretical Astrophysics, UofT
>> Sciences and Engineering Coordinator, Teaching Assistants' Training Program,
>> UofT
>>
>> www.astro.utoronto.ca/~h-clark
>> h-clark at cita.utoronto.ca
>> Astronomy office phone: +1-416-978-5759
>>
>> _______________________________________________
>> 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