Python matplotlib中缺少轴

Python matplotlib中缺少轴,python,matplotlib,Python,Matplotlib,我在python和matplotlib方面遇到了问题 我在跑步 from matplotlib import rc import matplotlib.cm as cm from matplotlib.ticker import MultipleLocator scoreArray = [3,8,7,8,9,0] scoreArrayIsopmap = [3,4,7,1,3,0] scoreArrayPCA = [0,1,7,6,3,15] rc('font',**{'family':'B

我在python和matplotlib方面遇到了问题 我在跑步

from matplotlib import rc
import matplotlib.cm as cm
from matplotlib.ticker import MultipleLocator


scoreArray = [3,8,7,8,9,0]
scoreArrayIsopmap = [3,4,7,1,3,0]
scoreArrayPCA = [0,1,7,6,3,15]

rc('font',**{'family':'Bitstream Vera Sans','serif': ['Palatino']})
rc('text', usetex=True)

fig, (ax1) = plt.subplots(1,1, figsize=(7,5))

ax1.plot(range(0,6), scoreArray, color = 'b', ls='-', lw=4, alpha=0.7, label="A Priori Manifold")
ax1.plot(range(0,6), scoreArrayIsopmap, color = 'r', ls='-', lw=4, alpha=0.7, label="Isomap")
ax1.plot(range(0,6), scoreArrayPCA, color = 'g', ls='-', lw=4, alpha=0.7, label="PCA")

ax1.xaxis.set_major_locator(MultipleLocator(10))
ax1.grid(which='major', axis='x', linewidth=0.25, linestyle='-', color='0.75') 
ax1.grid(True) 
ax1.set_ylabel('Dunn Index') 
ax1.set_xlabel('Number Of Components')

我得到上面的图像,但轴不可见。我运行python 2.7.5和matplotlib 1.3。我在mac电脑上工作,它在不同的mac电脑上工作正常。直到两天前,我的车还在正常工作


有人知道为什么会这样吗?

这里有两件事:

  • 从matplotlib代码:

    text.usetex为True时,font.family必须为(衬线、无衬线、草书、单空格)之一。默认情况下将使用衬线

    因此,如果使用
    text.usetex
    ,则应将
    font.family
    设置为支持的值之一

  • 您在matplotlib 1.3.0:)中发现了一个bug,但它已经在开发分支中修复。因此,在下一个版本中,您将不会得到错误


  • 即使我删除了所有与文本相关的行,它仍然不起作用,而且它在另一台mac电脑上也可以使用相同的软件包和版本。这两行是导致问题的原因。如果您删除了它们,并且正在使用IDE,那么应该重新启动解释器,因为资源已缓存。谢谢,它现在可以工作了。但我还是不明白为什么它一直工作到昨天而不是今天。
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    
    1419             self.set_frameon(frameon)
    1420 
    -> 1421         self.canvas.print_figure(*args, **kwargs)
    1422 
    1423         if frameon:
    
    /usr/local/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in print_figure(self,    filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
    2218                 orientation=orientation,
    2219                 bbox_inches_restore=_bbox_inches_restore,
    -> 2220                 **kwargs)
    2221         finally:
    2222             if bbox_inches and restore_bbox:
    
    /usr/local/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in print_pdf(self, *args, **kwargs)
    1950         from backends.backend_pdf import FigureCanvasPdf  # lazy import
    1951         pdf = self.switch_backends(FigureCanvasPdf)
    -> 1952         return pdf.print_pdf(*args, **kwargs)
    1953 
    1954     def print_pgf(self, *args, **kwargs):
    
    /usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_pdf.pyc in print_pdf(self, filename, **kwargs)
    2338                                          width, height, image_dpi, RendererPdf(file, image_dpi),
    2339                                          bbox_inches_restore=_bbox_inches_restore)
    -> 2340             self.figure.draw(renderer)
    2341             renderer.finalize()
    2342         finally:
    
    /usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
    52     def draw_wrapper(artist, renderer, *args, **kwargs):
    53         before(artist, renderer)
    ---> 54         draw(artist, renderer, *args, **kwargs)
    55         after(artist, renderer)
    56 
    
    /usr/local/lib/python2.7/site-packages/matplotlib/figure.pyc in draw(self, renderer)
    1032         dsu.sort(key=itemgetter(0))
    1033         for zorder, a, func, args in dsu:
    -> 1034             func(*args)
    1035 
    1036         renderer.close_group('figure')
    
    /usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
    52     def draw_wrapper(artist, renderer, *args, **kwargs):
    53         before(artist, renderer)
    ---> 54         draw(artist, renderer, *args, **kwargs)
    55         after(artist, renderer)
    56 
    
    /usr/local/lib/python2.7/site-packages/matplotlib/axes.pyc in draw(self, renderer, inframe)
    2084 
    2085         for zorder, a in dsu:
    -> 2086             a.draw(renderer)
    2087 
    2088         renderer.close_group('axes')
    
    /usr/local/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
    52     def draw_wrapper(artist, renderer, *args, **kwargs):
    53         before(artist, renderer)
    ---> 54         draw(artist, renderer, *args, **kwargs)
    55         after(artist, renderer)
    56 
    
    /usr/local/lib/python2.7/site-packages/matplotlib/axis.pyc in draw(self, renderer, *args, **kwargs)
    1087         ticks_to_draw = self._update_ticks(renderer)
    1088         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
    -> 1089                                                                 renderer)
    1090 
    1091         for tick in ticks_to_draw:
    
    /usr/local/lib/python2.7/site-packages/matplotlib/axis.pyc in _get_tick_bboxes(self, ticks, renderer)
    1036         for tick in ticks:
    1037             if tick.label1On and tick.label1.get_visible():
    -> 1038                 extent = tick.label1.get_window_extent(renderer)
    1039                 ticklabelBoxes.append(extent)
    1040             if tick.label2On and tick.label2.get_visible():
    
    /usr/local/lib/python2.7/site-packages/matplotlib/text.pyc in get_window_extent(self, renderer, dpi)
    751             raise RuntimeError('Cannot get window extent w/o renderer')
    752 
    --> 753         bbox, info, descent = self._get_layout(self._renderer)
    754         x, y = self.get_position()
    755         x, y = self.get_transform().transform_point((x, y))
    
    /usr/local/lib/python2.7/site-packages/matplotlib/text.pyc in _get_layout(self, renderer)
    318         tmp, lp_h, lp_bl = get_text_width_height_descent('lp',
    319                                                          self._fontproperties,
    --> 320                                                          ismath=False)
    321         offsety = (lp_h - lp_bl) * self._linespacing
    322 
    
    /usr/local/lib/python2.7/site-packages/matplotlib/backends/backend_pdf.pyc in    get_text_width_height_descent(self, s, prop, ismath)
    1945     def get_text_width_height_descent(self, s, prop, ismath):
    1946         if rcParams['text.usetex']:
    -> 1947             texmanager = self.get_texmanager()
    1948             fontsize = prop.get_size_in_points()
    1949             w, h, d = texmanager.get_text_width_height_descent(s, fontsize,
    
    /usr/local/lib/python2.7/site-packages/matplotlib/backend_bases.pyc in get_texmanager(self)
    612         if self._texmanager is None:
    613             from matplotlib.texmanager import TexManager
    --> 614             self._texmanager = TexManager()
    615         return self._texmanager
    616 
    
    /usr/local/lib/python2.7/site-packages/matplotlib/texmanager.pyc in __init__(self)
    170         if len(ff) == 1 and ff[0].lower() in self.font_families:
    171             self.font_family = ff[0].lower()
    --> 172         elif ff.lower() in self.font_families:
    173             self.font_family = ff.lower()
    174         else:
    
    AttributeError: 'list' object has no attribute 'lower'