我有一个非常简单的问题,但在网上没有找到答案。我甚至不确定这个功能是否存在于ggplot2中。
对于不同类型的图,我通常创建主题,因此每次使用不同的数据重新生成图时,我不必键入所有内容。
代码可能如下所示:
theme_UMAP <- function(x){
theme(...,
legend.key = element_rect(colour = NA),
legend.position = "bottom",
legend.direction = "horizontal",
legend.key.size= unit(0.8, "cm"),
legend.spacing = unit(0, "cm"),
legend.title = element_text(face="bold",size=15),
legend.text = element_text(size=14),
plot.margin=unit(c(2,1,1,1),"mm"),
strip.background=element_rect(colour="#f0f0f0",fill="#f0f0f0"),
strip.text = element_text(face="bold")}
对于这个特定的主题,我知道X标签 * 总是 * 为 * UMAP 1 *,Y标签 * 总是 * 为 * UMAP 2 *。我希望通过以下方式将其包含在函数中:
theme_UMAP <- function(x){
theme(...,
legend.spacing = unit(0, "cm"),
legend.title = element_text(face="bold",size=15),
legend.text = element_text(size=14),
plot.margin=unit(c(2,1,1,1),"mm"),
strip.background=element_rect(colour="#f0f0f0",fill="#f0f0f0"),
strip.text = element_text(face="bold")+
xlab("UMAP 1")+
ylab("UMAP 2")}
但是,这会导致以下错误:
Error:
! Theme element `x` is not defined in the element hierarchy.
任何想法如何实现我正在努力做的是非常赞赏!
干杯!
1条答案
按热度按时间vc9ivgsu1#
代码的第一个问题是将
x/ylab
放在了theme
中,第二个问题是,如果要将多个层放在函数中,请使用list
:使用基于
mtcars
的最小示例: