R ggplot2在.elements\u树之外创建新的主题元素
我需要为ggplot2创建一个新的主题元素 如何向R ggplot2在.elements\u树之外创建新的主题元素,r,ggplot2,themes,R,Ggplot2,Themes,我需要为ggplot2创建一个新的主题元素 如何向.elements\u树数据结构中添加一个新的项(作为参考,它从第263行开始) 例如,我有一个特殊的情况,我需要添加另一个轴,所以我想添加主题对象:axis.text.z,axis.title.z等等 我可以通过侵入plot$theme手动将其添加到单个plot对象(比如“plot”),但是,当我尝试通过theme(…)命令进行修改时,它会通过validate\u元素函数(从第363行开始)得到未验证,同样在同一源文件上(再次) 如果我通过以下
.elements\u树
数据结构中添加一个新的项(作为参考,它从第263行开始)
例如,我有一个特殊的情况,我需要添加另一个轴,所以我想添加主题对象:axis.text.z
,axis.title.z
等等
我可以通过侵入plot$theme
手动将其添加到单个plot对象(比如“plot”),但是,当我尝试通过theme(…)
命令进行修改时,它会通过validate\u元素
函数(从第363行开始)得到未验证,同样在同一源文件上(再次)
如果我通过以下方式创建.elements\u 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"))
et不会被ggplot2拾取。尝试:“theme(axis.title.z=element_blank())”您的解决方案有效(即解锁、锁定绑定),条目缺少名称,即,它们应该像et$axis.text.z=ggplot2:::el_def(“element_text”,“axis.text”)