[yt-users] create_profile of linear fields

Nathan Goldbaum nathan12343 at gmail.com
Fri Oct 31 14:29:50 PDT 2014


I see how this works now:  ProfilePlot by default will take the logging
behavior from the take_log attribute of the FieldInfo instance associated
with the field.

This is definitely a bug: ProfilePlot should at least be smart enough to
see that all of the data values are zero or negative and automatically
switch the logging behavior so you can at least create a plot without
erroring out inside matplotlib.

A quick fix would be to manually change take_log for the field you're
plotting, or to create an alias derived field that has a custom take_log
choice.

I could also see an argument for adding a keyword argument to control the
plot field logging in the ProfilePlot constructor - although we usually
have a pretty high bar for solving problems by adding new keyword arguments.

On Fri, Oct 31, 2014 at 2:23 PM, Douglas Harvey Rudd <drudd at uchicago.edu>
wrote:

>  For profiles where at least one data point is positive I can alter the
> log-edness once I have the ProfilePlot object using set_log.
>
>  Douglas Rudd
> Scientific Computing Consultant
> Research Computing Center
>  drudd at uchicago.edu
>
>
>
>  On Oct 31, 2014, at 4:18 PM, Douglas Harvey Rudd <drudd at uchicago.edu>
> wrote:
>
>  I believe it only works for axis fields.  From the docstrings:
>
>  logs : dict of boolean values
>     Whether or not to log the bin_fields for the profiles.
>     The keys correspond to the field names. Defaults to the take_log
>     attribute of the field.
>
>  and adding velocity_magnitude to logs generates the same error as before.
>
>   Douglas Rudd
> Scientific Computing Consultant
> Research Computing Center
>  drudd at uchicago.edu
>
>
>
>  On Oct 31, 2014, at 4:10 PM, Nathan Goldbaum <nathan12343 at gmail.com>
> wrote:
>
>  What happens if you use the 'logs' keyword for create_profile to control
> the logging for temperature, velocity_magnitude, and dx?
>
> On Fri, Oct 31, 2014 at 2:08 PM, Douglas Harvey Rudd <drudd at uchicago.edu>
> wrote:
>
>> Hi all,
>>
>> Is there a way to specify the log/non-log scaling of a y-axis variable in
>> create_profile or ProfilePlot.from_profiles?  I have some profiles that
>> start flat at an initial time and so the velocity_magnitude is everywhere
>> 0.  create_profile succeeds, but ProfilePlot.from_profiles generates a
>> Matplotlib error before I have the ability to specify a scaling:
>>
>>     sph = ds.sphere(ds.domain_center, ds.domain_width[0]/2)
>>     profile = yt.create_profile(sph, "radius",
>>                                 ["density", "temperature",
>> "velocity_magnitude", "dx"],
>>
>> extrema={'radius':(ds.domain_width[0]/ds.num_grid,ds.domain_width[0]/2.)},
>>
>> n_bins=int(ds.domain_width[0]*2.**(ds.max_level-1)),
>>                                 logs={'radius':False},
>>                                 units={'radius':'pc'})
>>     plot = yt.ProfilePlot.from_profiles(profile)
>>
>> Relevant part of the dump:
>> /software/python-2.7-2014q3-el6-x86_64/lib/python2.7/site-packages/matplotlib-1.4.0-py2.7-linux-x86_64.egg/matplotlib/ticker.pyc
>> in view_limits(self, vmin, vmax)
>>    1523         if minpos <= 0 or not np.isfinite(minpos):
>>    1524             raise ValueError(
>> -> 1525                 "Data has no positive values, and therefore can
>> not be "
>>    1526                 "log-scaled.")
>>    1527
>>
>>
>> Douglas Rudd
>> Scientific Computing Consultant
>> Research Computing Center
>> drudd at uchicago.edu
>>
>>
>>
>> _______________________________________________
>> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20141031/fff72613/attachment.html>


More information about the yt-users mailing list