R 使用效果包的自定义绘图
我尝试从effects包中定制多行图 下面示例中的图例是否可以放置在绘图区域内而不是图形上方 或者:是否有人知道如何使用ggplot2绘制效果包计算的多行回归结果 谢谢你的帮助 安迪 示例:R 使用效果包的自定义绘图,r,ggplot2,regression,R,Ggplot2,Regression,我尝试从effects包中定制多行图 下面示例中的图例是否可以放置在绘图区域内而不是图形上方 或者:是否有人知道如何使用ggplot2绘制效果包计算的多行回归结果 谢谢你的帮助 安迪 示例: library(effects) data(Prestige) mod5 <- lm(prestige ~ income*type + education, data=Prestige) eff_cf <- effect("income*type", mod5) print(plot(eff_c
library(effects)
data(Prestige)
mod5 <- lm(prestige ~ income*type + education, data=Prestige)
eff_cf <- effect("income*type", mod5)
print(plot(eff_cf, multiline=TRUE))
库(效果)
数据(声望)
mod5这是在ggplot中绘制效果对象的方式
library(ggplot2)
## Change effect object to dataframe
eff_df <- data.frame(eff_cf)
## Plot ggplot with legend on the bottom
ggplot(eff_df)+geom_line(aes(income,fit,linetype=type))+theme_bw()+
xlab("Income")+ylab("Prestige")+coord_cartesian(xlim=c(0,25000),ylim=c(30,110))+
theme(legend.position="bottom")
库(ggplot2)
##将效果对象更改为数据帧
从?xyplot
中,您可以看到:
或者,可以通过以下方式将关键点定位在绘图区域内:
指定组件x
、y
和角<代码>x
和y
确定位置
由角给出的键的角,通常是
c(0,0)
,c(1,0)
,c(1,1)
和c(0,1)
,它们表示
单位为平方米
从你读到的?plot.eff
key.args要传递给键网格的其他参数
xyplot或densityplot的参数,例如定位键(图例)
在绘图区域中
例如,您可以执行以下操作:
plot(eff_cf, multiline=TRUE,
key.args=list(x=0.2,y=0.9,corner=c(x=1, y=1)))
@Tom Wenseleers
为此,您可以将sjPlot::sjp.int
与type='eff'
一起使用
然而,它不会给你地毯图,也没有原始数据点
mod5 <- lm(prestige ~ type * income + education, data=Prestige)
library(sjPlot)
sjp.int(mod5,showCI = T, type = 'eff')
mod5根据鲁本的回答,您可以尝试以下内容:
library(sjPlot)
sjp.int(mod5, type = "eff", swapPredictors = T)
它将使用ggplot
复制绘图,sjp.int
还将返回绘图对象以供进一步自定义。但是,也可以使用sjPlot软件包设置某些图例参数:
sjp.setTheme(legend.pos = "bottom right",
legend.inside = T)
sjp.int(mod5, type = "eff", swapPredictors = T)
它给出了以下曲线图:
有关如何自定义打印外观和图例位置/大小等的示例,请参见
要将模型的估计值绘制为森林图或所有模型术语的边际效果,请参见sjPlot软件包中的?sjp.lm
,或者您甚至可以在我的软件包中试用最新的功能。您能否像在效果软件包中所做的那样显示示例数据。感谢您的回复,我用一个例子更新了我的问题这里只有一个额外的问题-你如何最优雅地在这里添加95%置信限或95%预测带,比如用三种不同的颜色(使用实线和虚线)显示3组,也可能用不同的颜色显示实际数据点?效果包中没有选项也可以显示实际数据点吗?