[AstroPy] equivalent routine to IDL Astronomy Library lineid_plot

Jonathan Slavin jslavin at cfa.harvard.edu
Fri Sep 16 13:33:37 EDT 2011


Hi Prasanth,

Nice work!  The images of plots look good.  Unfortunately I'm running
into a problem when running the example:

/export/slavin/python/phn-lineid_plot-a88d5f0/lineid_plot.py in
plot_line_ids(wave, flux, line_wave, line_label1, label1_size, extend,
**kwargs)
    182     # coordinates and extract the width.

    183     for box in ax.texts:
--> 184         b_ext = box.get_window_extent()
    185         box_widths.append(b_ext.transformed(ax_inv_trans).width)
    186 

/usr/local/lib/python2.6/site-packages/matplotlib/text.pyc in
get_window_extent(self, renderer, dpi)
    736             self._renderer = renderer
    737         if self._renderer is None:
--> 738             raise RuntimeError('Cannot get window extent w/o
renderer')
    739 
    740         bbox, info = self._get_layout(self._renderer)

RuntimeError: Cannot get window extent w/o renderer

I haven't been able to get it to work from the command line -- i.e. the
__name__ = "__main__", doing python lineid_plot -- though I have gotten
it to work in an interactive session.  I think an Axes instance is
necessary, so you might want to add ax=None as an explicit keyword and
add:
if ax == None:
    ax = plt.gca()

For my part, I'd prefer not to have arrow heads on the lines, so I would
change the arrowstyle in arrowprops to "-".  I'll look over the code
some more and may offer more suggestions.

Thanks,
Jon

On Fri, 2011-09-16 at 20:32 +0530, Prasanth wrote:
> Hello,
> 
> My attempt at implementing the lineid_plot.pro algorithm is available
> at 
> http://github.com/phn/lineid_plot. 
> 
> The automatic layout calculation is identical to that in the IDL
> procedure. But I 
> have tried to make use of the annotate feature provided by Matplotlib
> for the rest of the
> code.
> 
> I don't have access to IDL and hence couldn't properly explore the
> working of
> the IDL code. GDL can't run the code.
> 
> After implementing the layout calculations, the rest of the code,
> surprisingly, turns out 
> to be not difficult to write at all. This probably means that I am
> blind to some 
> obvious problems!
> 
> Feedback will be greatly appreciated.
> 
> Thanks,
> Prasanth
> 
> On Wed, Aug 24, 2011 at 8:49 PM, Jonathan Slavin
> <jslavin at cfa.harvard.edu> wrote:
>         If I had the time to do that adaptation, I'd certainly do it
>         -- and may
>         yet -- but it does depend on a lot of things that are very IDL
>         specific
>         such as the character size and plot region, etc.  I think that
>         there are
>         some good hints in the discussion on automatically creating
>         enough room
>         for tick labels
>         (http://matplotlib.sourceforge.net/faq/howto_faq.html),
>         but there's quite a bit more needed than that.
>         
>         Jon
>         
>         On Wed, 2011-08-24 at 11:48 -0300, Taro Sato wrote:
>         > I have my own custom routine to display line identifications
>         at given
>         > redshift but it's not smart enough to avoid overlapping; it
>         only
>         > alternates the offsets so that adjacent labels won't always
>         overlap.
>         > What you have in your example plot is certainly doable with
>         MPL...
>         > It's tricky to ensure that labels are readable most of the
>         time but
>         > since you know how to approach the problem, why don't you
>         create one
>         > and make it available publicly!  If the desired algorithm
>         needed is
>         > already coded in the IDL script it shouldn't be too
>         painful.  :D
>         --
>         
>         ______________________________________________________________
>         Jonathan D. Slavin              Harvard-Smithsonian CfA
>         jslavin at cfa.harvard.edu         60 Garden Street, MS 83
>         phone: (617) 496-7981           Cambridge, MA 02138-1516
>          cell: (781) 363-0035           USA
>         ______________________________________________________________
>         
>         
>         
>         _______________________________________________
>         AstroPy mailing list
>         AstroPy at scipy.org
>         http://mail.scipy.org/mailman/listinfo/astropy
>         
> 
-- 
______________________________________________________________
Jonathan D. Slavin              Harvard-Smithsonian CfA
jslavin at cfa.harvard.edu         60 Garden Street, MS 83
phone: (617) 496-7981           Cambridge, MA 02138-1516
 cell: (781) 363-0035           USA
______________________________________________________________




More information about the AstroPy mailing list