在rpy2中的ggplot2中自定义网格条

时间:2013-09-01 17:33:49

标签: python ggplot2 rpy2

我正在尝试在ggplot2中更改facet网格/ facet包装上的条带的背景颜色,并删除它们的边界框(即只显示标签)。看来这需要element_rect未在rpy2中定义 - 如何定义其构造函数?或者有没有element_rect的替代方法吗?我试过了:

my_plot += theme(**{'strip.background': element_blank()})

但它不起作用,给出错误:

rpy2.rinterface.RRuntimeError: Error in (function (el, elname)  : 
  Element panel.background must be a element_rect object.

from rpy2.robjects.lib.ggplot2 import element_rect

因导入错误而失败。如何才能做到这一点?

1 个答案:

答案 0 :(得分:1)

[编辑:添加未指定的命名参数传递给new()以回答答案评论]

与...完全相同的答案 how can theme_classic be accessed in rpy2 from ggplot2?,因为我是它,我将添加一个注释,即rpy2中最终要解决的问题应该报告给问题跟踪器。

import rpy2.robjects.lib.ggplot2 as ggplot2

class ElementRect(ggplot2.Element):
    _constructor = ggplot2.ggplot2.element_rect
    @classmethod
    def new(cls, **kwargs):
        res = cls(cls._constructor(**kwargs))
        return res

# Monkey patch ggplot2
ggplot2.element_rect = ElementRect.new