[yt-users] Problem with multi plot
Reju Sam John
rejusamjohn at gmail.com
Wed Aug 7 01:37:17 PDT 2013
Dear Cameron Hummels,
*Thanks a lot. This is exactly what I am looking.*
*
*
On Wed, Aug 7, 2013 at 3:15 AM, Cameron Hummels <chummels at gmail.com> wrote:
> Hi Reju,
>
> It looks like your for loops are in the wrong order (as you correctly
> surmised). Your first "for" loop (i.e. for kk in L:) goes through each
> redshift output, and it generates a new 3x3 plot collection for each one
> which it populates with the slice plots for that redshift.
>
> What I think you want to do is run the two later for loops (i.e. for i in
> range (0,3): for j in range (0, 3):) first, and then load in the
> individual redshift outputs to populate the plot collection.
> Unfortunately, and someone can correct me here if I'm wrong, but I don't
> think you'll be able to use the Plot Collection data structure to do this.
> PlotCollections are necessarily tied to a single data output, not several
> as you're trying to do here with the data outputs for each redshift.
>
> What you'll likely have to do instead is just generate an array of slices,
> where you generate each from a different data output. There is some
> examples of this on the yt docs page here:
>
>
> http://yt-project.org/doc/cookbook/complex_plots.html#multi-plot-slice-and-projections
>
> and here:
>
>
> http://yt-project.org/doc/cookbook/complex_plots.html#advanced-multi-plot-multi-panel
>
>
> In addition, I wrote up a quick basic script to generate a 3x3 image array
> with slices (or projections) from a bunch of different data outputs. I
> think it is what you're trying to do. It's here:
>
> http://paste.yt-project.org/show/3749/
>
> and it generates this image:
>
> http://i.imgur.com/lhUrcbI.png
>
> I hope this helps. Let us know if you have any other questions regarding
> this.
>
> Cameron
>
>
> On Tue, Aug 6, 2013 at 10:09 AM, Reju Sam John <rejusamjohn at gmail.com>wrote:
>
>> Dear all,
>>
>> I am trying to create a muti plot of density's at different red-shift
>> with the following code.
>>
>> from yt.mods import *
>> import matplotlib.colorbar as cb
>>
>> fig, axes, colorbars = get_multi_plot( 3, 3, colorbar='vertical', bw = 3)
>> file1="/app/run/csarkar/surajit/simulation_shock/simulation5/RD00"
>> file2="/RedshiftOutput00"
>>
>> L = [11,15,18,20,22,25,30,35,40]
>>
>> #for i in range (0, 8):
>> for kk in L:
>> fn_i=str(kk)
>> fn=file1+fn_i+file2+fn_i
>> print fn
>> pf = load(fn)
>> pc = PlotCollection(pf, center=[0.5, 0.5, 0.5])
>> for i in range (0,3):
>> for j in range (0, 3):
>> p = pc.add_slice("Density", 2, axes = axes[i][j],figure =
>> fig, use_colorbar=False)
>> p.set_log_field(True)
>> p.set_zlim(1e-31,5e-26)
>> p.set_cmap("jet")
>> p.modify["contour"]("Density", ncont=10, plot_args =
>> {'colors':'w'},clim=(2e-28,2e-26))
>> p.modify["contour"]("Temperature", ncont=10, plot_args =
>> {'colors':'k'},clim=(3e7,1e8))
>> #pc.set_width(3.0, 'mpc')
>> #break
>> # i = i+1
>>
>>
>> for p, cax in zip(pc.plots, colorbars):
>> cbar = cb.Colorbar(cax, p.image, orientation='vertical')
>> p.colorbar = cbar
>> p._autoset_label()
>> fig.savefig("multi_plot_3_3" % pf)
>>
>>
>> But I am getting a wrong result. It is printing same figure in all panels.
>>
>> I think my logic(algorithm) is wrong. We have to reverse first two for
>> loop. But that also making problem. Please help me.
>>
>> And also if I include the following line in the code. (in my code I
>> commented it out)
>>
>> pc.set_width(3.0, 'mpc')
>>
>> it is showing following error.
>>
>> *Traceback (most recent call last):*
>> * File "multi_plot_loop.py", line 24, in <module>*
>> * pc.set_width(3.0, 'mpc') *
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_collection.py",
>> line 292, in set_width*
>> * plot.set_width(width, unit)*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_types.py",
>> line 458, in set_width*
>> * self._refresh_display_width()*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_types.py",
>> line 476, in _refresh_display_width*
>> * self._redraw_image()*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_types.py",
>> line 423, in _redraw_image*
>> * self._run_callbacks()*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_types.py",
>> line 263, in _run_callbacks*
>> * cb(self)*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/src/yt-hg/yt/visualization/plot_modifications.py",
>> line 312, in __call__*
>> * self.ncont = np.linspace(self.clim[0], self.clim[1], self.ncont)*
>> * File
>> "/data1/pdf/csurajit/yt-x86_64/lib/python2.7/site-packages/numpy/core/function_base.py",
>> line 74, in linspace*
>> * num = int(num)*
>> *TypeError: only length-1 arrays can be converted to Python scalars*
>>
>>
>> Please suggest me the most efficient way to achieve my goal (create a
>> muti plot of density's at different red-shift).
>>
>>
>>
>>
>> --
>> Reju Sam John
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>>
>
>
> --
> Cameron Hummels
> Postdoctoral Researcher
> Steward Observatory
> University of Arizona
> http://chummels.org
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
--
Reju Sam John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20130807/c5bfde4c/attachment.html>
More information about the yt-users
mailing list