2014-03-25 135 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

我也有同樣的問題。我刪除了錯誤中提到的這些緩存文件,它工作。再次執行腳本創建這些緩存文件,所以沒有問題。