我需要为 ggplot2 创建一个新的主题元素
如何将 NEW 项添加到 .elements_tree
数据结构中(作为引用,它从第 263 行 HERE 开始)
例如,我有一个特殊的情况,我需要添加另一个轴,所以,我想添加主题对象:axis.text.z
,axis.title.z
等等...
我可以通过侵入 plot$theme
将其手动添加到单个绘图对象(例如“plot”),但是,当我尝试通过 theme(...) 进行修改时
命令,它通过从第 363 行开始的 validate_element
函数获得非验证,也在同一个源文件上(再次 HERE)。
如果我通过以下方式创建 .elements_tree
的本地副本:
.elements_tree = ggplot2:::.elements_tree
.elements_tree = c(.elements_tree,
axis.text.z = el_def("element_text", "axis.text"),
axis.title.z = el_def("element_text", "axis.text"))
然后 ggplot2 库实例不会获取新副本,因此什么也没有实现。
最佳答案
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"))
关于r - ggplot2 在 .elements_tree 之外创建一个新的主题元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013475/