如何使用Python和rpy2控制R图的显示位置?

3 投票
2 回答
795 浏览
提问于 2025-04-16 11:28

我正在用Python写一个程序。首先会弹出一个窗口(我用的是wxPython),里面有一些按钮和文字。当用户进行某些操作时,会在另一个窗口中显示一个图表。这个图表是用R语言制作的,使用了rpy2库。现在的问题是,这个图表通常会在主窗口的上面弹出来,这样用户就得把图表移动一下,才能看到主窗口。这对用户来说是个大麻烦,因为他懒得动。他希望图表能出现在别的地方,这样他就可以同时看到主窗口和图表,而不用动手。

我想到两个可能的解决办法:
(1) 把图表显示在一个wxPython的框架里(我想我可以控制它的位置),或者
(2) 能指定图表窗口在屏幕上的位置。

但是我不知道怎么做这两件事。

2 个回答

0

文档里有几行关于这个内容的说明:

默认情况下,R会在“交互式”绘图设备上绘图(也就是X11)。你可以指定一个非交互式的文件设备,比如jpeg、png或pdf。如果你想要缩放或者调整大小,使用pdf可能会更简单。

在rpy2-2.2.0dev版本中,有一个非常实验性的功能,可以让你比较容易地实现新的绘图设备(比如在matplotlib画布上绘图,或者在wxWindows面板上绘图),但不幸的是,这个功能还不完整,也没有文档说明,可能也没有完全正常工作。

5

使用 jpeg()png() 或其他工具把图像保存到一个图形文件里,然后在你的 wxWidget 上显示这个文件。

撰写回答