繁体   English   中英

为什么rpy2.robjects.lib.grid.viewport()返回ListVector,但不返回Viewport?

[英]Why rpy2.robjects.lib.grid.viewport() return ListVector,but not viewport?

我正在尝试使用rpy2.robjects.lib.grid.viewport()在一个图中绘制几个子图,这是代码:

from rpy2.robjects.lib import grid
from rpy2.robjects.packages import importr
import rpy2.robjects.lib.ggplot2 as ggplot2
from rpy2 import robjects
dataf=robjects.DataFrame({'year':IntVector([2000,2001,2002,2001,2002]),
      'pop':IntVector([1.5,1.7,3.6,2.4,2.9]),'GDP':IntVector([4,5.3,6,7,8])})
grid.newpage()
lt=grid.layout(1,2)
vp=grid.viewport(layout=lt)
print(type(vp))
vp.push()
gp=ggplot2.ggplot(dataf)
vp = grid.viewport(**{'layout.pos.col':1, 'layout.pos.row': 1})
pp=gp+ggplot2.aes_string(x='pop',y='GDP')+ggplot2.geom_point()
pp.plot(vp=vp)
vp = grid.viewport(**{'layout.pos.col':2, 'layout.pos.row': 1})
pp=gp+ggplot2.aes_string(x='pop',y='GDP',col='factor(year)')+ggplot2.geom_point()
pp.plot(vp=vp)

但是执行“ vp.push()”时出现错误。 错误如下:

追溯(最近一次调用):vp.push()中第15行的文件“ F:\\ pythonspace \\ pythontoR2.py” AttributeError:'ListVector'对象没有属性'push'

我正在使用python3.4和R3.2.1,rpy2 2.7.6。

似乎是rpy2.robjects.lib.grid一个疏忽。

尝试更换

vp=grid.viewport(layout=lt)

vp=grid.Viewport(grid.viewport(layout=lt))

(并且可能会在rpy2的错误跟踪器上提交错误报告)

注意:此问题发布问题#350 ,并且在回购协议中有一个修复程序(将包含在rpy2 2.8.0版中)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM