首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在脚本中使用Matplotlib的呈现器问题

在脚本中使用Matplotlib的呈现器问题
EN

Stack Overflow用户
提问于 2013-11-18 15:12:43
回答 2查看 10.9K关注 0票数 15

我把范围缩小到这个电话:

代码语言:javascript
运行
复制
fig.canvas.tostring_argb() #fig=matplotlib.pyplot.figure()

当我将代码作为python脚本运行时,此函数将引发一个AttributeErrorAttributeError: 'FigureCanvasGTKAgg' object has no attribute 'renderer'

但是,如果在ipython --pylab命令行中运行,此代码将正常工作。

据我从文档中可以看出,Agg呈现器应该可以正常工作。

上下文是,我试图用数字制作一部电影,而不把帧保存到磁盘上;就像this question那样。我使用将像素数组流到ffmpeg (作为一个单独的进程运行)的方法来完成这一任务,我需要来自框架的值的argb数组。

是否有一些配置设置可以使matplotlib在脚本中正确工作?

根据注释编辑尝试过的use('Agg');仍然失败;这是一个最小的工作示例。

代码语言:javascript
运行
复制
[dave@dave tools]$ python -c "import matplotlib; matplotlib.use('Agg'); import matplotlib.pyplot; fig=matplotlib.pyplot.figure(); fig.canvas.tostring_argb()"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 416, in tostring_argb
    return self.renderer.tostring_argb()
AttributeError: FigureCanvasAgg instance has no attribute 'renderer'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 21:11:57

最后,我安装和使用了WXAgg后端;Agg和默认的GTKAgg对我不起作用。

票数 3
EN

Stack Overflow用户

发布于 2016-02-15 11:08:45

我怀疑你错过了电话:

代码语言:javascript
运行
复制
fig.canvas.draw()

在此之前

代码语言:javascript
运行
复制
fig.canvas.tostring_argb()

作为

代码语言:javascript
运行
复制
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot
fig=matplotlib.pyplot.figure()
fig.canvas.tostring_argb()

我失败了,但是

代码语言:javascript
运行
复制
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot
fig=matplotlib.pyplot.figure()
fig.canvas.draw()
fig.canvas.tostring_argb()

很管用。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20051160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档