Круговая диаграмма в Python вызывает ошибку IOError: [Errno 13] Permission denied

Я пытаюсь нарисовать простую круговую диаграмму на Python. Я могу создать саму круговую диаграмму, но метки не отображаются.

Это мой код:

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-файл круговой диаграммы без ошибок. Мне просто нужен способ определения секторов круговой диаграммы - будь то метки, легенда или что-то еще.


person user2957365    schedule 25.03.2014    source источник


Ответы (1)


У меня тоже была такая же проблема. Я удалил эти файлы кеша, упомянутые в ошибке, и это сработало. повторное выполнение сценария создало эти файлы кеша, так что проблем нет.

person Sparkie    schedule 05.03.2017