I'm using plotreg()
from the texreg
package to display coefficient and CI estimates, but I find that I was not able to reproduce graphical output with layout similar to those done by others. For example, using the working example 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)
Supposedly, I should produce something like this
I'm wondering if there's a way to remove the outer frame of my plotreg
output and put the title (Model
) on top of the graph (instead of having it placed vertically on the left y-axis of the graph)?
Or it could be that the authors of the package have dramatically changed the default setting, so that the layout used in the working example is no longer available.
#UPDATE
Following @IRTFM's recommendation (changing the plotting theme()
), I was able to make the graphical output look much similar to the working example.
So that the frame is removed and the main title now sits on top of the graph, only that I still could not set the 0-reference vertical bar to solid line (I have tried using the [ref.line.par][4]
argument in coefplot()
, but it didn't work)
I used the following code:
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))
The output looks like this