3

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

  1. 避免/关闭此 GUI 并将绘图对象保存在运行时的某个位置(我将在其他一些 C# 表单控件中显示它)。

  2. 找到一个与dev.off()R 语言中的命令等效的 Python,它关闭了用于绘图的 GUI。

例子:

print ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

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

在此处输入图像描述

4

2 回答 2

0

由于绘图是由__repr__方法触发的,因此显而易见的方法是避免调用它时出现的情况。由于您想在其他地方使用此图,因此没有理由调用print甚至执行将被丢弃的语句,如下所示:

ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

相反,您可以简单地将其分配给变量

p = ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

在 R 中做的事情完全相同。使用图形设备重定向输出并丢弃它并没有真正的意义。

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

import matplotlib
matplotlib.use('Agg')
from ggplot import *
ggplot(aes(x='date', y='beef'), data=meat)
<ggplot: (...)>
于 2015-09-06T17:39:45.087 回答
0

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

g = ggplot(...) + geom_xxx(...)
fig = g.draw()

ggplots__repr__()方法(所谓的print(g)基本上是self.draw()然后使用 matplotlibsplt.show()来显示情节......

您还可以使用ggsave(g)将绘图保存在某处。

于 2015-09-07T20:02:42.780 回答