Repeated calls to set_text using TeX formatting results in RuntimeError

Repeated calls to set_text using TeX formatting results in RuntimeError
I’m doing a parameter fitting exercise, and plotting the progress as I do so. I have found that repeated calls to set_text() on a text object will result in an error opening a font file iff the text uses TeX formatting. (I am not using the experimental usetex feature).

I speculate that matplotlib is opening the font file anew with each call to set_text and never closing it, resulting ultimately in having too many files open. Here is a brief program to reproduce this behavior (WinXP, Py2.5, matplotlib 0.90.1):

from pylab import figure, axes, draw, ion

from numpy import array, cos, abs

ion()

fig=figure()

axs=axes()

x=array(range(100))/10.0

cosPlot=axs.plot( x, cos(x)**2, ‘r’ )

powText = axs.text(0.9,0.02,r’$\alpha=$’,

                horizontalalignment='left',verticalalignment='bottom',

                transform = axs.transAxes)

draw()

for alpha in array(range(10,400))/100.0:

axs.lines[-1].set_ydata( abs(cos(x))**alpha)

powText.set_text(r'$\alpha=%.4g$'%alpha)

print alpha

draw()

Traceback (most recent call last):

File “delme.py”, line 16, in

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\pylab.py”, line 754, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_tkagg.py”, line 154, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_agg.py”, line 392, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\figure.py”, line 601, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\axes.py”, line 1286, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\text.py”, line 410, in draw

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\text.py”, line 255, in _get_layout

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_agg.py”, line 246, in get_text_width_height

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mathtext.py”, line 1569, in call

File “C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mathtext.py”, line 578, in init

RuntimeError: Could not open facefile c:\Python25\lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mpl-data\fonts\ttf\cmtt10.ttf; Cannot_Open_Resource

disclaim.txt (931 Bytes)

I believe this is a known bug with 0.90.1. Are you able to run 0.91.1?

Cheers,
Mike

···

Brian.Boonstra@...1809... wrote:

I'm doing a parameter fitting exercise, and plotting the progress as I do so. I have found that repeated calls to set_text() on a text object will result in an error opening a font file iff the text uses TeX formatting. (I am not using the experimental usetex feature).

I speculate that matplotlib is opening the font file anew with each call to set_text and never closing it, resulting ultimately in having too many files open. Here is a brief program to reproduce this behavior (WinXP, Py2.5, matplotlib 0.90.1):

from pylab import figure, axes, draw, ion
from numpy import array, cos, abs
ion()
fig=figure()
axs=axes()
x=array(range(100))/10.0
cosPlot=axs.plot( x, cos(x)**2, 'r' )
powText = axs.text(0.9,0.02,r'$\alpha=$',
                    horizontalalignment='left',verticalalignment='bottom',
                    transform = axs.transAxes)
draw()
for alpha in array(range(10,400))/100.0:
    axs.lines[-1].set_ydata( abs(cos(x))**alpha)
    powText.set_text(r'$\alpha=%.4g$'%alpha)
    print alpha
    draw()
   
Traceback (most recent call last):
  File "delme.py", line 16, in <module>
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\pylab.py", line 754, in draw
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_tkagg.py", line 154, in draw

  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_agg.py", line 392, in draw

  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\figure.py", line 601, in draw
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\axes.py", line 1286, in draw
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\text.py", line 410, in draw
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\text.py", line 255, in _get_layout
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\backends\backend_agg.py", line 246, in get_text_width_height

  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mathtext.py", line 1569, in __call__
  File "C:\Python25\Lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mathtext.py", line 578, in __init__
RuntimeError: Could not open facefile c:\Python25\lib\site-packages\matplotlib-0.90.1-py2.5-win32.egg\matplotlib\mpl-data\fonts\ttf\cmtt10.ttf; Cannot_Open_Resource

------------------------------------------------------------------------

-------------------------------------------------------------------------
SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php

------------------------------------------------------------------------

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

--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

If I am reading this right, according to the svn log, you fixed this in

  r4633 | mdboom | 2007-12-05 14:28:28 -0600 (Wed, 05 Dec 2007) | 2 lines

  Fix bug where font files were opened many more times than they need to be.

and 0.91.1 was released at r4517. So this fix may not be out until
the 0.91.2 point release. Or were you referring to a different fix?

JDH

···

On Dec 11, 2007 8:17 AM, Michael Droettboom <mdroe@...86...> wrote:

I believe this is a known bug with 0.90.1. Are you able to run 0.91.1?

This bug is that many font files were being opened than needed, but they were still all getting closed.

Much earlier, someone else fixed a bug where they weren't getting closed at all.

http://sourceforge.net/tracker/index.php?func=detail&aid=1695171&group_id=80706&atid=560720
http://sourceforge.net/tracker/index.php?func=detail&aid=1715662&group_id=80706&atid=560720

Cheers,
Mike

John Hunter wrote:

···

On Dec 11, 2007 8:17 AM, Michael Droettboom <mdroe@...86...> wrote:

I believe this is a known bug with 0.90.1. Are you able to run 0.91.1?

If I am reading this right, according to the svn log, you fixed this in

  r4633 | mdboom | 2007-12-05 14:28:28 -0600 (Wed, 05 Dec 2007) | 2 lines

  Fix bug where font files were opened many more times than they need to be.

and 0.91.1 was released at r4517. So this fix may not be out until
the 0.91.2 point release. Or were you referring to a different fix?

JDH

--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA