从 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"))
所以我已经破解了其中的大部分内容并且可以做到这一点:
我正在使用 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"))
所以我已经破解了其中的大部分内容并且可以做到这一点: