编辑边际效应图中置信区间的外观
Editing the appearance of the confidence intervals in a marginal effects plot
我正在使用 plot_model 从逻辑回归中生成一系列边际效应图。我想更改下图中置信区间的外观,但我想不出办法。我假设这将通过编辑 ggplot 主题来实现?
理想情况下,我希望能够缩小双杠或将其完全移除,更改线条粗细等。如果您能指出正确的方向,那将非常有帮助。
library(sjPlot)
mtcars$am <- factor(mtcars$am)
m <- glm(vs ~ am, mtcars, family = 'binomial')
plot_model(m, type = "pred", terms = "am")
输出:
我是 ggplot2 的新手,如果有一个简单的答案,我很抱歉!
谢谢
plot_model
生成一个 ggplot
对象。使用像 sjPlot
这样的扩展包的问题在于,必须牺牲一些能力在 return 中为 ease-of-use.
自定义情节
可以在创建 ggplot 后对其进行更改,但它确实需要更改绘图的图层规范。如果您知道去哪里找,这并不太难,但对于一个相对较新的用户来说,这可能会让人望而生畏。
首先,存储你的情节:
p <- plot_model(m, type = "pred", terms = "am")
现在,如果我们想改变双杠的大小,我们可以这样做:
p$layers[[2]]$geom_params$width <- 0.01
(显然要完全摆脱它们,将其设置为 0 而不是 0.01)
要改变线条的粗细,我们可以这样做:
p$layers[[2]]$aes_params$size <- 1.4
要改变线条的颜色,我们会这样做:
p$layers[[2]]$aes_params$colour <- 'deepskyblue4'
点在线的前面而不是在线的后面也会更好看,所以我们可以像这样将后面的图层复制到前面:
p$layers[[3]] <- p$layers[[1]]
这给我们留下了以下情节:
p
但是,我们仍然可以向该图添加比例、坐标和主题以对其进行自定义,例如,我们可能希望这样做:
p +
theme_minimal(base_size = 20) +
coord_cartesian() +
theme(aspect.ratio = 1.5,
plot.title = element_text(hjust = 0.5),
plot.title.position = 'plot')
我正在使用 plot_model 从逻辑回归中生成一系列边际效应图。我想更改下图中置信区间的外观,但我想不出办法。我假设这将通过编辑 ggplot 主题来实现?
理想情况下,我希望能够缩小双杠或将其完全移除,更改线条粗细等。如果您能指出正确的方向,那将非常有帮助。
library(sjPlot)
mtcars$am <- factor(mtcars$am)
m <- glm(vs ~ am, mtcars, family = 'binomial')
plot_model(m, type = "pred", terms = "am")
输出:
我是 ggplot2 的新手,如果有一个简单的答案,我很抱歉!
谢谢
plot_model
生成一个 ggplot
对象。使用像 sjPlot
这样的扩展包的问题在于,必须牺牲一些能力在 return 中为 ease-of-use.
可以在创建 ggplot 后对其进行更改,但它确实需要更改绘图的图层规范。如果您知道去哪里找,这并不太难,但对于一个相对较新的用户来说,这可能会让人望而生畏。
首先,存储你的情节:
p <- plot_model(m, type = "pred", terms = "am")
现在,如果我们想改变双杠的大小,我们可以这样做:
p$layers[[2]]$geom_params$width <- 0.01
(显然要完全摆脱它们,将其设置为 0 而不是 0.01)
要改变线条的粗细,我们可以这样做:
p$layers[[2]]$aes_params$size <- 1.4
要改变线条的颜色,我们会这样做:
p$layers[[2]]$aes_params$colour <- 'deepskyblue4'
点在线的前面而不是在线的后面也会更好看,所以我们可以像这样将后面的图层复制到前面:
p$layers[[3]] <- p$layers[[1]]
这给我们留下了以下情节:
p
但是,我们仍然可以向该图添加比例、坐标和主题以对其进行自定义,例如,我们可能希望这样做:
p +
theme_minimal(base_size = 20) +
coord_cartesian() +
theme(aspect.ratio = 1.5,
plot.title = element_text(hjust = 0.5),
plot.title.position = 'plot')