2014-03-25 87 views
2

我想在Python中绘制一个简单的饼图。我能够自己制作饼图,但标签没有显示出来。在Python中的饼图产生IOError:[Errno 13]权限被拒绝

这是我的代码:

from pylab import * 

frac = [10, 40, 15, 35] 
labels = ['Part A', 'Part B', 'Part C', 'Part D'] 
explode = [0.03, 0.03, 0.03, 0.03] 

# Create pie chart 
pie(frac, explode, labels, shadow=True) 
# Give it a title 
title('Pie Chart') 

# Save the plot to a PDF file 
savefig('Pie Chart.pdf', dpi=200, format='PDF') 

这我得到的错误,当我构建它:

Traceback (most recent call last): 
    File "H:\Projects\Developing Quality Software\simple pie chart.py", line 13, in <module> 
    savefig('Pie Chart.pdf', dpi=200, format='PDF') 
    File "C:\PYTHON27\lib\site-packages\matplotlib\pyplot.py", line 561, in savefig 
    return fig.savefig(*args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\figure.py", line 1421, in savefig 
    self.canvas.print_figure(*args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backends\backend_wxagg.py", line 85, in print_figure 
    FigureCanvasAgg.print_figure(self, filename, *args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backend_bases.py", line 2220, in print_figure 
    **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backend_bases.py", line 1952, in print_pdf 
    return pdf.print_pdf(*args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backends\backend_pdf.py", line 2340, in print_pdf 
    self.figure.draw(renderer) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper 
    draw(artist, renderer, *args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\figure.py", line 1034, in draw 
    func(*args) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper 
    draw(artist, renderer, *args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\axes.py", line 2086, in draw 
    a.draw(renderer) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\artist.py", line 54, in draw_wrapper 
    draw(artist, renderer, *args, **kwargs) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\text.py", line 547, in draw 
    bbox, info, descent = self._get_layout(renderer) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\text.py", line 320, in _get_layout 
    ismath=False) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backends\backend_pdf.py", line 1965, in get_text_width_height_descent 
    font = self._get_font_ttf(prop) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\backends\backend_pdf.py", line 1997, in _get_font_ttf 
    filename = findfont(prop) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\font_manager.py", line 1362, in findfont 
    font = fontManager.findfont(prop, **kw) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\font_manager.py", line 1258, in findfont 
    _rebuild() 
    File "C:\PYTHON27\lib\site-packages\matplotlib\font_manager.py", line 1343, in _rebuild 
    pickle_dump(fontManager, _fmcache) 
    File "C:\PYTHON27\lib\site-packages\matplotlib\font_manager.py", line 939, in pickle_dump 
    with open(filename, 'wb') as fh: 
IOError: [Errno 13] Permission denied: 'C:\\Users\\c1366554\\.matplotlib\\fontList.cache' 
[Finished in 1.7s with exit code 1] 

我已经看到了很多其他问题有关ioError:[ErrNo13]所以我很抱歉,如果答案在那里,但我通读了他们所有,我仍然不明白为什么我得到这个错误。我从来没有权限的问题。

如果我注释掉标题/标签部分,则可以生成饼图的PDF,而不会出错。我只需要一种方法可以识别饼图的楔形 - 无论是标签,传奇还是其他任何东西。

回答

0

我也有同样的问题。我删除了错误中提到的这些缓存文件,它工作。再次执行脚本创建这些缓存文件,所以没有问题。