从 plotreg() 输出中删除框架并旋转 header

Removing frame from and rotate header on plotreg() output

我正在使用 texreg 包中的 plotreg() 来显示系数和 CI 估计值,但我发现我无法重现布局类似于那些的图形输出别人做的。例如,使用工作示例 here:

# install.packages("texreg")
library(texreg)

# load example data
library(car)
prestige.dat <- data.frame(Prestige)

# standardizing the data
pres_mean <- mean(prestige.dat$prestige, na.rm = TRUE)
pres_sd <- sd(prestige.dat$prestige, na.rm = TRUE)
prestige.dat$prestige.std <- (prestige.dat$prestige - pres_mean) / pres_sd
                                
inc_mean <- mean(prestige.dat$income, na.rm = TRUE)
inc_sd <- sd(prestige.dat$income, na.rm = TRUE)
prestige.dat$income.std <- (prestige.dat$income - inc_mean) / inc_sd
                            
educ_mean <- mean(prestige.dat$education, na.rm = TRUE)
educ_sd <- sd(prestige.dat$education, na.rm = TRUE)
prestige.dat$education.std <- (prestige.dat$education - educ_mean) / educ_sd

# standardized regression
mod.std <- lm(prestige.std ~ income.std + education.std, data = prestige.dat)

# plot
plotreg(list(mod.std),
          custom.coef.names = c("Intercept", "Income", "Education"),
          custom.model.names = c("Model"),
          reorder.coef = c(2, 3, 1),
          lwd.vbars = 0)

按理说,我应该制作这样的东西

但我得到了这个

我想知道是否有办法删除我的 plotreg 输出的外框并将标题 (Model) 放在图表的顶部(而不是将其垂直放置在图的左侧 y-axis)?

或者可能是包的作者显着更改了默认设置,因此工作示例中使用的布局不再可用。

#更新

按照@IRTFM 的建议(更改绘图theme()),我能够使图形输出看起来与工作示例非常相似。 这样框架就被移除了,主标题现在位于图表的顶部,只是我仍然无法将 0-reference 垂直条设置为实线(我尝试使用 [ref.line.par][4] 中的参数 coefplot(), 但没用)

我使用了以下代码:

plt <- plotreg(list(mod.std),
          custom.coef.names = c("Intercept", "Income", "Education"),
          custom.model.names = c("Model"),
          reorder.coef = c(2, 3, 1),
          lwd.vbars = 0)

library(ggplot2)
plt + ggtitle("Model") + 
      theme(panel.border=element_blank(),               strip.text=element_text(size=12, colour="transparent"), strip.background=element_rect(colour="transparent", fill="transparent"), plot.title = element_text(hjust = 0.5))

输出看起来像这样

在我看来它像一个格子图。共有三种主要的绘图范式:base、lattice 和 ggplot。如果你执行:

plt <- plotreg(  list(mod.std),
     custom.coef.names = c("Intercept", "Income", "Education"),
     custom.model.names = c(""),
     reorder.coef = c(2, 3, 1),
     lwd.vbars = 0)

str(plt)

...你在结果的最后看到

 # much above
 attr(*, "class")= chr [1:2] "gg" "ggplot"

所以我错了。这是一个 ggplot,因此您需要查看主题设置并弄清楚如何 a) 摆脱方框和网格,b) 围绕 CI 条,以及 c) 摆脱 y 方向的“模型”乐队又名“小平面”标签。

正在搜索:

a)

b) 更改 $ lineend : chr "butt"` # to round(不工作)

$ theme      :List of 93
..$ line                      :List of 6
.. ..$ colour       : chr "black"
.. ..$ size         : num 0.5
.. ..$ linetype     : num 1
.. ..$ lineend      : chr "butt"

c) 去除分面标签:

plt +theme(panel.border=element_blank(),
           strip.text=element_text(size=12, colour="transparent"),
           strip.background=element_rect(colour="transparent", 
                                         fill="transparent"))

所以我已经破解了其中的大部分内容并且可以做到这一点: