首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python :有可能关闭显示的GUI吗?并获得一个命令行(“非交互式绘图”/“批处理”)

Python :有可能关闭显示的GUI吗?并获得一个命令行(“非交互式绘图”/“批处理”)
EN

Stack Overflow用户
提问于 2015-08-11 04:13:13
回答 2查看 573关注 0票数 3

使用Python绘图时,每一个绘图命令都会显示一个GUI窗格并挂起执行(“交互式绘图”)。但我想:

  1. 避免/关闭这个图形用户界面,并在运行时将它保存在某个位置(我将在其他一些C#窗体控件中显示它)。
  2. 在R语言中找到一个相当于dev.off()命令的Python,该命令关闭图形用户界面进行绘图。

示例:

代码语言:javascript
复制
print ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

当我执行此操作时,它将打开一个新的GUI (如下面所示),以显示该图。

EN

回答 2

Stack Overflow用户

发布于 2015-09-06 17:39:45

由于绘图是由__repr__方法触发的,因此显然的方法是避免在调用它时出现这种情况。由于您希望在其他地方使用此绘图,因此没有理由调用print,甚至没有理由执行将被丢弃的语句:

代码语言:javascript
复制
ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

相反,可以简单地将其赋值给变量。

代码语言:javascript
复制
p = ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

一个人在R中所做的事情是完全一样的,使用图形设备重定向输出并丢弃它是没有意义的。

如果出于某些原因,这还不够,您切换到非交互式matplotlib后端:

代码语言:javascript
复制
import matplotlib
matplotlib.use('Agg')
from ggplot import *
ggplot(aes(x='date', y='beef'), data=meat)
<ggplot: (...)>
票数 0
EN

Stack Overflow用户

发布于 2015-09-07 20:02:42

您可以执行以下操作,这将返回matplotlib图:

代码语言:javascript
复制
g = ggplot(...) + geom_xxx(...)
fig = g.draw()

__repr__()方法( print(g)所称的基本是self.draw(),然后使用matplotlibs plt.show()来显示图.

您还可以使用ggsave(g)将情节保存在某个地方。

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

https://stackoverflow.com/questions/31933084

复制
相关文章

相似问题

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