ggplot2在.elements_tree之外创建一个新的主题元素

时间:2013-11-16 01:23:46

标签: r ggplot2 themes

我需要为ggplot2

创建一个新的主题元素

如何将项添加到.elements_tree数据结构中(供参考,它从第263行开始HERE

例如,我有一个特殊的情况,我需要添加另一个轴,所以,我想添加主题对象:axis.text.zaxis.title.z等......

我可以通过入侵plot$theme手动将其添加到单个绘图对象(比如'plot'),但是,当我尝试通过theme(...)命令进行修改时,它会通过{363}函数从第363行开始,同样位于同一源文件(HERE上)。

如果我通过以下内容创建validate_element的本地副本:

.elements_tree

然后ggplot2库实例不会获取新副本,因此无法实现。

1 个答案:

答案 0 :(得分:3)

HTH:

et <- ggplot2:::.element_tree
et <- c(.element_tree,
        axis.text.z  = ggplot2:::el_def("element_text", "axis.text"),
        axis.title.z = ggplot2:::el_def("element_text", "axis.text"))

unlockBinding(".element_tree", asNamespace("ggplot2"))
assign(".element_tree", et, asNamespace("ggplot2"))
lockBinding(".element_tree", asNamespace("ggplot2"))