我需要为ggplot2
创建一个新的主题元素如何将新项添加到.elements_tree
数据结构中(供参考,它从第263行开始HERE)
例如,我有一个特殊的情况,我需要添加另一个轴,所以,我想添加主题对象:axis.text.z
,axis.title.z
等......
我可以通过入侵plot$theme
手动将其添加到单个绘图对象(比如'plot'),但是,当我尝试通过theme(...)
命令进行修改时,它会通过{363}函数从第363行开始,同样位于同一源文件(HERE上)。
如果我通过以下内容创建validate_element
的本地副本:
.elements_tree
然后ggplot2库实例不会获取新副本,因此无法实现。
答案 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"))