在R中使用plot_model时如何改变图例的美观?

问题描述 投票:0回答:1

我目前正在使用plot_model 从 AIC 模型选择过程中绘制二项式广义线性混合效应模型。总的来说,plot_model 工作得很好,但我在自定义图例时遇到了麻烦。这很大程度上源于这样一个事实:某些代码需要位于plot_model函数中,而其他代码需要位于theme函数中。这是我的代码和我当前的图表:

# generate break positions
breaks = c(seq(-30, 0, by=10), -2)
# and labels
labels = as.character(breaks)

plot1 <- plot_model(m2, type = "pred" ,
                    terms = c("Day [all]", "Sex"),
                    colors = c("blue", "red"),
                    ci.lvl = .95,
                    legend.title = "",
                    line.size = 1) +
  labs(x = "Days Relative to Clutch Initiation", y = "P(Attend at night)", title = NULL) +
  scale_x_continuous(expand = c(0, 0), breaks = breaks, labels = labels) + 
  scale_y_continuous(limit = c(0, 1), expand = c(0, 0)) + 
  theme_classic() + 
  theme(axis.text=element_text(size=16), 
        axis.title=element_text(size=14), 
        axis.title.x = element_text(vjust=-0.5),
        axis.title.y = element_text(vjust=2.5),
        axis.ticks.length=unit(0.1,"inch"), 
        legend.key.size = unit(1, 'cm'), 
        legend.position = "top",
        legend.justification = "left",
        plot.margin = margin(1,.5,1,1, "cm"))
plot1

我想对图例进行一些美学上的改变:

  1. 是否可以将“男性”和“女性”旁边的彩色图标从框中的行更改为该颜色的填充框?换句话说,我可以在男性旁边放置一个蓝色填充框,在女性旁边放置一个红色填充框吗?如果没有,我还有什么其他选择?

  2. 是否可以将图例信息相互堆叠,以便“男性”位于“女性”上方而不是旁边?

  3. 现在我正在使用 legend.position 和 legend.justification 移动图例的方向。是否可以使用坐标手动移动图例?理想情况下,我希望它低一点,这样它就位于图表内。

  4. 如何更改字体大小和类型?我尝试了element_text,也许我做错了,但是没有用。理想情况下,我希望它是 Times New Roman(衬线)并且稍大一些。

我知道这是一个很多问题,如果有人能指出我正确的方向,我将不胜感激。我只是在格式化方面遇到了麻烦,因为图例是由plot_model函数产生的,而不是通过ggplot或其他绘图包产生的。

r ggplot2 plot legend glm
1个回答
0
投票

尝试

#1)  
plot1 + scale_fill_discrete(name = "Legend", labels = c("Males", "Females"))
#2)  
plot1 + guides(fill=guide_legend(nrow=2,byrow=TRUE))
#3)  
plot1 + theme(legend.position = c(x, y))
#4)  
plot1 + theme(legend.text = element_text(colour="blue", size=10, 
                                     face="bold"))

但在我看来,不要在图例上浪费太多时间,一种常见的方法是用 R 构建漂亮清晰的图形,然后在 powerpoint 下编辑图例。

© www.soinside.com 2019 - 2024. All rights reserved.