[Matplotlib-users] Rendering SciPy docstrings as markup text within matplotlib

2013-08-05 Thread federico vaggi
Hi,

SciPy (and NumPy) docstrings are written with a special kind of mark up:

For example, the docstring for the russellrao distance function looks like
this:

'\nComputes the Russell-Rao dissimilarity between two boolean 1-D
arrays.\n\nThe Russell-Rao dissimilarity between two boolean 1-D
arrays, `u` and\n`v`, is defined as\n\n.. math::\n\n  \\frac{n
- c_{TT}}\n   {n}\n\nwhere :math:`c_{ij}` is the number of
occurrences of\n:math:`\\mathtt{u[k]} = i` and :math:`\\mathtt{v[k]} =
j` for\n:math:`k  n`.\n\nParameters\n--\nu : (N,)
array_like, bool\nInput array.\nv : (N,) array_like, bool\n
   Input array.\n\nReturns\n---\nrussellrao : double\n
   The Russell-Rao dissimilarity between vectors `u` and `v`.\n\n'

What's the most efficient way to turn this into a format where you can
format it nicely as a matplotlib text object?

I tried:

fig = plt.figure()

ax = fig.add_subplot(111)

props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)

textstr = dist_fcn.__doc__

textstr = textstr.replace('math:',' ')

textstr = textstr.replace('`', '$')

textstr = textstr.replace('\n\n where', '$\n\n where')

ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14,

verticalalignment='top', bbox=props)


Which does an 'ok' job, at best, since fractions aren't converted properly.
 Is there a way to do it nicely short of using some horrendous regular
expressions?


Federico
--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Rendering SciPy docstrings as markup text within matplotlib

2013-08-05 Thread Michael Droettboom
docutils is the library that supports the format (restructuredtext) that 
these docstrings are written in.  It *may* (I haven't looked) contain 
functionality to render as clean plain text.


Mike

On 08/05/2013 09:57 AM, federico vaggi wrote:

Hi,

SciPy (and NumPy) docstrings are written with a special kind of mark up:

For example, the docstring for the russellrao distance function looks 
like this:


'\nComputes the Russell-Rao dissimilarity between two boolean 1-D 
arrays.\n\nThe Russell-Rao dissimilarity between two boolean 1-D 
arrays, `u` and\n`v`, is defined as\n\n.. math::\n\n 
 \\frac{n - c_{TT}}\n {n}\n\nwhere :math:`c_{ij}` is the number of 
occurrences of\n:math:`\\mathtt{u[k]} = i` and 
:math:`\\mathtt{v[k]} = j` for\n:math:`k  n`.\n\nParameters\n 
 --\nu : (N,) array_like, bool\nInput array.\n   
 v : (N,) array_like, bool\nInput array.\n\nReturns\n   
 ---\nrussellrao : double\nThe Russell-Rao 
dissimilarity between vectors `u` and `v`.\n\n'


What's the most efficient way to turn this into a format where you can 
format it nicely as a matplotlib text object?


I tried:

fig = plt.figure()

ax = fig.add_subplot(111)

props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)

textstr = dist_fcn.__doc__

textstr = textstr.replace('math:',' ')

textstr = textstr.replace('`', '$')

textstr = textstr.replace('\n\n where', '$\n\n where')

ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=14,

verticalalignment='top', bbox=props)


Which does an 'ok' job, at best, since fractions aren't converted 
properly.  Is there a way to do it nicely short of using some 
horrendous regular expressions?



Federico



--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent
caught up. So what steps can you take to put your SQL databases under
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk


___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users