[yt-users] 2 ProfilePlot problems
Nathan Goldbaum
nathan12343 at gmail.com
Mon Nov 6 14:17:34 PST 2017
These both sound like bugs. Can you please open two issues on github so we
don't lose track? Please also use datasets from yt-project.org/data or
include links to outputs so we can reproduce the issues locally.
-Nathan
On Mon, Nov 6, 2017 at 3:59 PM, Stephanie Tonnesen <stonnes at gmail.com>
wrote:
> Hi yt-users!
>
> I have two ProfilePlot issues. I have updated to yt version 3.5 dev0 to
> try and get the standard_error on a ProfilePlot, but now am running into
> other problems. Basically, I am trying to get the same result two ways,
> and have run into two problems.
>
> 1) The linewidth call no longer works. This code worked in my old yt
> version, but now gives me an error unless I take out the linewidth command:
>
> profiles = []
> labels = []
> plot_specs = []
> linest = ['-','--','-.','-','--']
> cols = ['red','red','red','green','green']
> lws = ['2','2','2','2','2']
>
> i =0
> while i < len(loop):
> ds = yt.load("/mnt/ceph/users/stonnesen/data1/"+loopfile[i]+
> "/DD"+loop[i]+"/"+loopfile[i]+loop[i])
> disk = ds.disk([0.5,0.5,0.5],[0,0,-1.0],(40,"kpc"),(2,"kpc"))
>
>
> profiles.append(yt.create_profile(
> data_source=disk,
> bin_fields=["radius"],
> fields=["density"],
> n_bins=52,
> units=dict(radius="kpc",
> density="g/cm**3"),
> logs=dict(radius=False),
> weight_field='ones',
> extrema=dict(radius=(0,40)),
> ))
> labels.append("%s" % looptext[i])
> plot_specs.append(dict(linestyle=linest[i],linewidth=
> lws[i],color=cols[i]))
>
>
> i = i+1
>
> plot = yt.ProfilePlot.from_profiles(profiles,labels=labels,plot_
> specs=plot_specs)
> plot.set_ylim('density',1e-27,1e-22)
> plot.save()
>
> I get this error:
> yt : [INFO ] 2017-11-06 16:44:12,585 Gathering a field list (this may
> take a moment.)
> Traceback (most recent call last):
> File "yt_diskprofile_oplotdiffruns.py", line 61, in <module>
> plot = yt.ProfilePlot.from_profiles(profiles,labels=labels,plot_
> specs=plot_specs)
> File "/mnt/home/stonnesen/yt-conda/yt/yt/visualization/profile_plotter.py",
> line 443, in from_profiles
> return cls._initialize_instance(obj, profiles, labels, plot_specs,
> y_log)
> File "/mnt/home/stonnesen/yt-conda/yt/yt/visualization/profile_plotter.py",
> line 393, in _initialize_instance
> obj._setup_plots()
> File "/mnt/home/stonnesen/yt-conda/yt/yt/visualization/profile_plotter.py",
> line 355, in _setup_plots
> label=self.label[i], **self.plot_spec[i])
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-
> packages/matplotlib/__init__.py", line 1710, in inner
> return func(ax, *args, **kwargs)
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-
> packages/matplotlib/axes/_axes.py", line 1437, in plot
> for line in self._get_lines(*args, **kwargs):
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-
> packages/matplotlib/axes/_base.py", line 404, in _grab_next_args
> for seg in self._plot_args(this, kwargs):
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-
> packages/matplotlib/axes/_base.py", line 394, in _plot_args
> seg = func(x[:, j % ncx], y[:, j % ncy], kw, kwargs)
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-
> packages/matplotlib/axes/_base.py", line 301, in _makeline
> seg = mlines.Line2D(x, y, **kw)
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-packages/matplotlib/lines.py",
> line 396, in __init__
> self.set_linestyle(linestyle)
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-packages/matplotlib/lines.py",
> line 1115, in set_linestyle
> self._us_dashOffset, self._us_dashSeq, self._linewidth)
> File "/mnt/xfs1/home/stonnesen/yt-conda/lib/python3.6/site-packages/matplotlib/lines.py",
> line 69, in _scale_dashes
> scaled_offset = offset * lw
> TypeError: can't multiply sequence by non-int of type 'float'
>
>
> 2) the plot copying the cookbook example (http://yt-project.org/doc/
> cookbook/simple_plots.html?highlight=profileplot%20standard%20deviation)
> is giving me 0s and nans instead of the correct values:
>
> profiles = []
> labels = []
> plot_specs = []
> linest = ['-','--','-.','-','--']
> cols = ['red','red','red','green','green']
> lw = ['2','2','2','2','2']
>
> i =0
> while i < len(loop):
> ds = yt.load("/mnt/ceph/users/stonnesen/data1/"+loopfile[i]+
> "/DD"+loop[i]+"/"+loopfile[i]+loop[i])
> disk = ds.disk([0.5,0.5,0.5],[0,0,-1.0],(40,"kpc"),(2,"kpc"))
>
> prof = yt.create_profile(disk,'radius',('gas','density'),
> units={'radius':'kpc'}, extrema={'radius':((0.0,'kpc')
> ,(40.0,'kpc'))},weight_field='ones')
>
> radius = prof.x
> mean = prof['gas','density']
> std = prof.standard_deviation['gas','density']
> plt.semilogy(radius,mean,color=cols[i])#,linewidth=lw[
> i],linestyle=linest[i])
> print (mean)
> print (radius)
>
> labels.append("%s" % looptext[i])
> i = i+1
>
> plt.ylim(1e-27,1e-21)
> plt.xlabel('r (kpc)')
> plt.ylabel(r'density')
> plt.legend()
> plt.savefig('density_profiles_gasmassmatch.png')
> plt.clf()
>
> The mean values are all zero, and the radius values are all nan. The code
> will finish (unless I use the linewidth command), but of course the plots
> have nothing on them!!
>
> Any ideas for these issues? I would be happy to send my full scripts or
> output files.
>
> Thanks!
> Stephanie
>
> --
> Dr. Stephanie Tonnesen
> Associate Research Scientist
> CCA, Flatiron Institute
> New York, NY
>
> stonnes at gmail.com
>
> _______________________________________________
> 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/20171106/ac99701d/attachment-0001.html>
More information about the yt-users
mailing list