我不确定出了什么问题,但是自从今天升级我的IPython笔记本v3.0.0后,我在调用plt.show()时遇到了一个相当令人担忧的错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/figure.pyc in draw(self, renderer)
1077 dsu.sort(key=itemgetter(0))
1078 for zorder, a, func, args in dsu:
-> 1079 func(*args)
1080
1081 renderer.close_group('figure')
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/axes/_base.pyc in draw(self, renderer, inframe)
2090
2091 for zorder, a in dsu:
-> 2092 a.draw(renderer)
2093
2094 renderer.close_group('axes')
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *args, **kwargs)
57 def draw_wrapper(artist, renderer, *args, **kwargs):
58 before(artist, renderer)
---> 59 draw(artist, renderer, *args, **kwargs)
60 after(artist, renderer)
61
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/legend.pyc in draw(self, renderer)
448 # update the location and size of the legend. This needs to
449 # be done in any case to clip the figure right.
--> 450 bbox = self._legend_box.get_window_extent(renderer)
451 self.legendPatch.set_bounds(bbox.x0, bbox.y0,
452 bbox.width, bbox.height)
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_window_extent(self, renderer)
254 get the bounding box in display space.
255 '''
--> 256 w, h, xd, yd, offsets = self.get_extent_offsets(renderer)
257 px, py = self.get_offset(w, h, xd, yd, renderer)
258 return mtransforms.Bbox.from_bounds(px - xd, py - yd, w, h)
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent_offsets(self, renderer)
375
376 whd_list = [c.get_extent(renderer)
--> 377 for c in self.get_visible_children()]
378 whd_list = [(w, h, xd, (h - yd)) for w, h, xd, yd in whd_list]
379
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent(self, renderer)
247 Return with, height, xdescent, ydescent of box
248 """
--> 249 w, h, xd, yd, offsets = self.get_extent_offsets(renderer)
250 return w, h, xd, yd
251
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent_offsets(self, renderer)
446
447 whd_list = [c.get_extent(renderer)
--> 448 for c in self.get_visible_children()]
449
450 if not whd_list:
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent(self, renderer)
247 Return with, height, xdescent, ydescent of box
248 """
--> 249 w, h, xd, yd, offsets = self.get_extent_offsets(renderer)
250 return w, h, xd, yd
251
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent_offsets(self, renderer)
375
376 whd_list = [c.get_extent(renderer)
--> 377 for c in self.get_visible_children()]
378 whd_list = [(w, h, xd, (h - yd)) for w, h, xd, yd in whd_list]
379
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent(self, renderer)
247 Return with, height, xdescent, ydescent of box
248 """
--> 249 w, h, xd, yd, offsets = self.get_extent_offsets(renderer)
250 return w, h, xd, yd
251
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent_offsets(self, renderer)
446
447 whd_list = [c.get_extent(renderer)
--> 448 for c in self.get_visible_children()]
449
450 if not whd_list:
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/offsetbox.pyc in get_extent(self, renderer)
778 clean_line, ismath = self._text.is_math_text(self._text._text)
779 _, h_, d_ = renderer.get_text_width_height_descent(
--> 780 "lp", self._text._fontproperties, ismath=False)
781
782 bbox, info, d = self._text._get_layout(renderer)
/Users/iMacHome/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py in get_text_width_height_descent(self, s, prop, ismath)
164 size = self.points_to_pixels(points)
165 width, height, descent = self.gc.get_text_width_height_descent(
--> 166 six.text_type(s), family, size, weight, style)
167 return width, height, 0.0*descent
168
ValueError: failed to convert font family name to ASCII
这会弄乱动态编辑器,它无法正确显示完整的绘图。然后在保存文件时,它看起来很好。它只是没有正确显示在动态plt.show()视图中?
请帮忙!
答案 0 :(得分:0)
似乎这个问题源于在图例属性参数中更改字体系列。
所以,而不是:
axHistX.legend(loc='upper left', prop={'family':'serif', 'size':'x-small'})
您需要使用:
axHistX.legend(loc='upper left', prop={'size':8})
结合全球财产变化:
mpl.rc('font',family='serif')