R 使用效果包的自定义绘图

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

我尝试从effects包中定制多行图

下面示例中的图例是否可以放置在绘图区域内而不是图形上方

或者:是否有人知道如何使用ggplot2绘制效果包计算的多行回归结果

谢谢你的帮助

安迪

示例:

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组,也可能用不同的颜色显示实际数据点?效果包中没有选项也可以显示实际数据点吗?