0

我正在尝试更改 ggplot2 中构面网格/构面环绕顶部的条带的背景颜色,并删除它们的边界框(即仅显示标签)。似乎这个要求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

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

4

1 回答 1

1

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

与如何从 ggplot2 在 rpy2 中访问 theme_classic的答案几乎相同 ?,因为我是它,所以我将添加注释,即希望最终解决的 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
于 2013-09-01T18:07:12.553 回答