Enthought – matplotlib (problemas con la función plot ())

Estoy tratando de usar matplotlib en Canopy Express. Incluso el código simple no se ejecuta …

NOTA: el sistema no reconoce la función plot(x) . Parece que hay algo con ASCII X Unicode. Mi computadora utiliza Unicode English (US).

Desde la consola tenemos:

  C:\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\font_manager.py in createFontList(fontfiles, fontext) 582 continue 583 try: --> 584 prop = ttfFontProperty(font) 585 except KeyError: 586 continue C:\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site-packages\matplotlib\font_manager.py in ttfFontProperty(font) 396 sfnt2 = '' 397 if sfnt4: --> 398 sfnt4 = sfnt4.decode('ascii').lower() 399 else: 400 sfnt4 = '' UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 0: ordinal not in range(128)' import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10) line, = plt.plot(x, np.sin(x), '--', linewidth=2) dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off line.set_dashes(dashes) plt.show() 

Este es un problema conocido en matplotlib 1.3.0 que se relaciona con tener un carácter no ASCII en uno de sus nombres de fuente (posiblemente el carácter Æ ).

Puede encontrar y eliminar la fuente ofensiva (la mejor idea) o tratar de parchear su instalación usando el siguiente procedimiento:

Abra lo siguiente en un editor de texto:

\Users\dafonseca\AppData\Local\Enthought\Canopy\User\lib\site- packages\matplotlib\font_manager.py

Busque sfnt4 = sfnt4.decode('ascii').lower()

Y reemplace con sfnt4 = sfnt4.decode('ascii', 'ignore').lower()

Tenga en cuenta que este error no existirá en la próxima versión de matplotlib.