【问题标题】:Pie chart in Python produces IOError: [Errno 13] Permission deniedPython中的饼图产生IOError:[Errno 13] Permission denied
【发布时间】:2014-05-03 09:54:24
【问题描述】:

我正在尝试用 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。我只需要一种方法来识别饼图的楔形 - 无论是标签、图例还是其他任何东西。

【问题讨论】:

    标签: python charts matplotlib ioerror pie-chart


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 2016-02-28
      • 2015-11-21
      • 1970-01-01
      • 2016-08-07
      • 2017-02-12
      • 2013-06-07
      • 2012-07-01
      相关资源
      最近更新 更多