def iso_abund(self, cycle, stable=False, amass_range=None,<EOL>mass_range=None, ylim=[<NUM_LIT:0>,<NUM_LIT:0>], ref=-<NUM_LIT:1>, show=True,<EOL>log_logic=True, decayed=False, color_plot=True,<EOL>grid=False, point_set=<NUM_LIT:1>, include_title=False,<EOL>data_provided=False,thedata=None, verbose=True,<EOL>mov=False,drawfig=None,drawax=None,show_names=True,<EOL>label=None,colour=None,elemaburtn=False,mypoint=None,plot_type=['<STR_LIT:->','<STR_LIT>','<STR_LIT>','<STR_LIT::>','<STR_LIT:->']):
plotType=self._classTest()<EOL>if str(cycle.__class__)=="<STR_LIT>":<EOL><INDENT>self.iso_abundMulti(cycle, stable,amass_range,mass_range,ylim,ref,<EOL>decayed,include_title,color_plot=color_plot,grid=False,point_set=point_set)<EOL>return<EOL><DEDENT>if mass_range!=None and mass_range[<NUM_LIT:0>]>mass_range[<NUM_LIT:1>]:<EOL><INDENT>print('<STR_LIT>')<EOL>print('<STR_LIT>')<EOL>return None<EOL><DEDENT>if amass_range!=None and amass_range[<NUM_LIT:0>]>amass_range[<NUM_LIT:1>]:<EOL><INDENT>print('<STR_LIT>')<EOL>print('<STR_LIT>')<EOL>return None<EOL><DEDENT>if plotType=='<STR_LIT>':<EOL><INDENT>if decayed:<EOL><INDENT>print('<STR_LIT>')<EOL>return None<EOL><DEDENT>if not data_provided:<EOL><INDENT>cycle=self.se.findCycle(cycle)<EOL>a_iso_to_plot   = array(self.se.A)<EOL>abunds          = self.get(cycle,'<STR_LIT>')<EOL>isotope_to_plot = array(self.se.isotopes)<EOL>z_iso_to_plot   = array(self.se.Z)<EOL>isomers_to_plot = array(self.se.isomeric_states)<EOL>if ref >-<NUM_LIT:1>:<EOL><INDENT>ref=self.se.findCycle(ref)<EOL>abundsRef=self.se.get(ref,'<STR_LIT>')<EOL><DEDENT>masses = self.se.get(cycle,'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>cycle=cycle <EOL>a_iso_to_plot   = array(self.se.A)<EOL>abunds          = thedata[<NUM_LIT:0>]<EOL>isotope_to_plot = array(self.se.isotopes)<EOL>z_iso_to_plot   = array(self.se.Z)<EOL>isomers_to_plot = array(self.se.isomeric_states)<EOL>if ref >-<NUM_LIT:1>:<EOL><INDENT>raise IOError("<STR_LIT>")<EOL><DEDENT>masses = thedata[<NUM_LIT:1>]<EOL><DEDENT>if mass_range == None:<EOL><INDENT>if verbose:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>mass_range = [min(masses),max(masses)]<EOL><DEDENT>masses.sort()<EOL>mass_range.sort()<EOL>if amass_range == None:<EOL><INDENT>amass_range=[int(min(a_iso_to_plot)),int(max(a_iso_to_plot))]<EOL><DEDENT>if <NUM_LIT:0> in z_iso_to_plot:<EOL><INDENT>ind_neut        = where(z_iso_to_plot==<NUM_LIT:0>)[<NUM_LIT:0>][<NUM_LIT:0>]<EOL>a_iso_to_plot   = delete(a_iso_to_plot,ind_neut)<EOL>z_iso_to_plot   = delete(z_iso_to_plot,ind_neut)<EOL>isomers_to_plot = delete(isomers_to_plot,ind_neut)<EOL>isotope_to_plot = delete(isotope_to_plot,ind_neut)<EOL>abunds = delete(abunds,ind_neut,<NUM_LIT:1>)<EOL>if ref >-<NUM_LIT:1>:<EOL><INDENT>abundsRef = delete(abundsRef,ind_neut,<NUM_LIT:1>)<EOL><DEDENT><DEDENT>acon=(a_iso_to_plot>=amass_range[<NUM_LIT:0>]) & (a_iso_to_plot<=amass_range[<NUM_LIT:1>])<EOL>isomers_to_plot = isomers_to_plot[acon]<EOL>isotope_to_plot = isotope_to_plot[acon]<EOL>z_iso_to_plot   = z_iso_to_plot[acon]<EOL>abunds          = abunds.T[acon].T<EOL>if ref >-<NUM_LIT:1>:<EOL><INDENT>abundsRef = abundsRef.T[acon].T<EOL><DEDENT>a_iso_to_plot   = a_iso_to_plot[acon]<EOL>el_iso_to_plot  = array([x.split('<STR_LIT:->')[<NUM_LIT:0>] for x in isotope_to_plot.tolist()])<EOL>if mass_range == None:<EOL><INDENT>if verbose:<EOL><INDENT>print('<STR_LIT>')<EOL><DEDENT>mass_range = [min(masses),max(masses)]<EOL><DEDENT>mass_range.sort()<EOL>aabs = []<EOL>if ref >-<NUM_LIT:1>:<EOL><INDENT>cyc  = [cycle,ref]<EOL>abus = [abunds,abundsRef]<EOL><DEDENT>else:<EOL><INDENT>cyc  = [cycle]<EOL>abus = [abunds]<EOL><DEDENT>for cc,aa in zip(cyc,abus):<EOL><INDENT>if not data_provided:<EOL><INDENT>masses = self.se.get(cc,'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>masses=masses <EOL><DEDENT>masses.sort()<EOL>dmass  = masses[<NUM_LIT:1>:] - masses[:-<NUM_LIT:1>]    <EOL>dmass  = append(dmass,<NUM_LIT:0.>)<EOL>mcon   = (masses>=mass_range[<NUM_LIT:0>]) & (masses<=mass_range[<NUM_LIT:1>])<EOL>dmass  = dmass[mcon]<EOL>aa = aa[mcon]<EOL>aa = (aa.T*dmass).T.sum(<NUM_LIT:0>)<EOL>aa = old_div(aa, (mass_range[<NUM_LIT:1>] - mass_range[<NUM_LIT:0>]))<EOL>aabs.append(aa)<EOL><DEDENT>if ref >-<NUM_LIT:1>:<EOL><INDENT>abunds = old_div(aabs[<NUM_LIT:0>],(aabs[<NUM_LIT:1>]+<NUM_LIT>))<EOL><DEDENT>else:<EOL><INDENT>abunds = aabs[<NUM_LIT:0>]<EOL><DEDENT>self.a_iso_to_plot=a_iso_to_plot<EOL>self.isotope_to_plot=isotope_to_plot<EOL>self.z_iso_to_plot=z_iso_to_plot<EOL>self.el_iso_to_plot=el_iso_to_plot<EOL>self.abunds=abunds<EOL>self.isomers_to_plot=isomers_to_plot<EOL>if elemaburtn: return<EOL><INDENT>self.isotopes = self.se.isotopes<EOL><DEDENT><DEDENT>elif plotType=='<STR_LIT>':<EOL><INDENT>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>self.get(cycle,decayed=decayed)<EOL>if ref is not -<NUM_LIT:1>:<EOL><INDENT>if type(ref) is list: <EOL><INDENT>import ppn<EOL>pp=ppn.abu_vector(ref[<NUM_LIT:0>])<EOL>abunds_pp=pp.get(ref[<NUM_LIT:1>],decayed=decayed)<EOL>self.abunds=old_div(self.abunds,pp.abunds)<EOL><DEDENT>else:<EOL><INDENT>abunds=self.abunds<EOL>self.get(ref,decayed=decayed)<EOL>self.abunds=old_div(abunds,(self.abunds+<NUM_LIT>))<EOL><DEDENT><DEDENT>if amass_range == None:<EOL><INDENT>amass_range=[min(self.a_iso_to_plot),max(self.a_iso_to_plot)]<EOL><DEDENT>aa=ma.masked_outside(self.a_iso_to_plot,amass_range[<NUM_LIT:0>],amass_range[<NUM_LIT:1>])<EOL>isotope_to_plot=ma.array(self.isotope_to_plot,mask=aa.mask).compressed()<EOL>z_iso_to_plot=ma.array(self.z_iso_to_plot,mask=aa.mask).compressed()<EOL>el_iso_to_plot=ma.array(self.el_iso_to_plot,mask=aa.mask).compressed()<EOL>abunds=ma.array(self.abunds,mask=aa.mask).compressed()<EOL>a_iso_to_plot=aa.compressed()<EOL>isomers_to_plot=[]<EOL>for i in range(len(self.isom)):<EOL><INDENT>if int(self.isom[i][<NUM_LIT:0>].split('<STR_LIT:->')[<NUM_LIT:1>])><NUM_LIT:100>:<EOL><INDENT>isomers_to_plot.append(self.isom[i])<EOL><DEDENT><DEDENT>self.a_iso_to_plot=a_iso_to_plot<EOL>self.isotope_to_plot=isotope_to_plot<EOL>self.z_iso_to_plot=z_iso_to_plot<EOL>self.el_iso_to_plot=el_iso_to_plot<EOL>self.abunds=abunds<EOL>self.isomers_to_plot=isomers_to_plot<EOL><DEDENT>else:<EOL><INDENT>print('<STR_LIT>')<EOL>print('<STR_LIT>')<EOL>return None<EOL><DEDENT>if verbose:<EOL><INDENT>print('<STR_LIT>')<EOL>if plotType=='<STR_LIT>':<EOL><INDENT>print('<STR_LIT>', mass_range[<NUM_LIT:0>], mass_range[<NUM_LIT:1>])<EOL><DEDENT>print('<STR_LIT>', amass_range[<NUM_LIT:0>], amass_range[<NUM_LIT:1>])<EOL>print('<STR_LIT>',cycle)<EOL>print('<STR_LIT>',stable)<EOL>print('<STR_LIT>',decayed)<EOL><DEDENT>if stable: <EOL><INDENT>ind_delete=[]<EOL>for i in range(len(isotope_to_plot)):<EOL><INDENT>if a_iso_to_plot[i] not in self.stable_el[self.stable_names.index(el_iso_to_plot[i])][<NUM_LIT:1>:]:<EOL><INDENT>ind_delete.append(i)<EOL><DEDENT><DEDENT>a_iso_to_plot   = delete(a_iso_to_plot,  ind_delete)<EOL>z_iso_to_plot   = delete(z_iso_to_plot,  ind_delete)<EOL>isomers_to_plot = delete(isomers_to_plot,ind_delete)<EOL>isotope_to_plot = delete(isotope_to_plot,ind_delete)<EOL>el_iso_to_plot  = delete(el_iso_to_plot, ind_delete)<EOL>abunds          = delete(abunds,         ind_delete)<EOL>
plot the abundance of all the chemical species

Parameters
----------
cycle : string, integer or list
    The cycle of interest.  If it is a list of cycles, this
    method will do a plot for each cycle and save them to a
    file.
stable : boolean, optional
    A boolean of whether to filter out the unstables.  The
    defaults is False.
amass_range : list, optional
    A 1x2 array containing the lower and upper atomic mass
    range.  If None plot entire available atomic mass range.
    The default is None.
mass_range : list, optional
    A 1x2 array containing the lower and upper mass range.  If
    this is an instance of abu_vector this will only plot
    isotopes that have an atominc mass within this range.  This
    will throw an error if this range does not make sense ie
    [45,2].  If None, it will plot over the entire range.  The
    defaults is None.
ylim : list, optional
    A 1x2 array containing the lower and upper Y limits.  If
    it is [0,0], then ylim will be determined automatically.
    The default is [0,0].
ref : integer or list, optional
    reference cycle.  If it is not -1, this method will plot
    the abundences of cycle devided by the cycle of the same
    instance given in the ref variable.  If ref is a list it
    will be interpreted to have two elements:
    ref=['dir/of/ref/run',cycle] which uses a refernece cycle
    from another run.  If any abundence in the reference cycle
    is zero, it will replace it with 1e-99.  The default is -1.
show : boolean, optional
    Boolean of if the plot should be displayed.  The default is
    True.
log_logic : boolean, optional
    Plot abundances in log scale or linear.  The default is
    True.
decayed : boolean, optional
    If True plot decayed distributions, else plot life
    distribution.  The default is False.
color_plot : boolean, optional
    Color dots and lines [True/False].  The default is True.
grid : boolean, optional
    print grid.  The default is False.
point_set : integer, optional
    Set to 0, 1 or 2 to select one of three point sets, useful
    for multiple abundances or ratios in one plot.  The defalult
    is 1.
include_title : boolean, optional
    Include a title with the plot.  The default is False.
drawfig, drawax, mov : optional, not necessary for user to set these variables
    The figure and axes containers to be drawn on, and whether or not a movie is
    being made (only True when se.movie is called, which sets mov to True
    automatically
elemaburtn : boolean, private
    If true, iso_abund() returns after writing self.***_iso_to_plot for
    use with other plotting routines.f
mypoint : string, optional
    fix the marker style of all the points in this plot to one type, given
    as a string. If None, multiple point styles are used as per point_set.
    The default is None