提问人:zhang xia 提问时间:11/14/2023 更新时间:11/14/2023 访问量:31
如何调整 johnon-neyman 图?
How to adjust the johnon-neyman plot in?
问:
我使用“interactions”包的 sim_slopes() 函数绘制了 johnon-neyman 图。但是我想调整图形的外观:(1)水平和垂直标题(2)垂直和水平坐标的刻度值(3)并删除粗黑线“观测数据范围”
mod <- lm(sorry~ preciseage*group, data = RAWdata)
sim_slopes(mod, pred = group, modx = preciseage, jnplot = TRUE,confint = TRUE )
我尝试了其他人提供的两种方法,但都没有解决问题(它们都报告了一个错误:二进制列运算符具有非数字参数),两者的代码模板如下:
#first
mod$plot + xlab("my x label") + ylab("my y label")
mod[["plot"]] +
labs(title = "My new Johnson-Neyman Plot title", x = "My new x axis", y = "My new y axis")
作为R语言学习的新手,总是有各种各样的问题,我真的需要你的帮助,谢谢!
我使用“interactions”包的 sim_slopes() 函数绘制了 johnon-neyman 图。但是我想调整图形的外观:(1)水平和垂直标题(2)垂直和水平坐标的刻度值(3)并删除粗黑线“观测数据范围”
答:
0赞
K. Peltzer
11/14/2023
#1
由于我没有示例数据,我将向您展示一个包含虹膜数据的示例。
数据和库:
library(interactions)
library(ggplot2)
data(iris)
线性回归示例:
mod <- lm(Sepal.Length ~ Sepal.Width * Petal.Length, data = iris)
my_sim_slopes <- sim_slopes(
mod,
pred = Petal.Length,
modx = Sepal.Width,
jnplot = TRUE,
confint = TRUE
)
我可以验证 plot 对象的类是 ggplot,所以我加载了库。ggplot2
class(my_sim_slopes[["jnplot"]])
# [1] "gg" "ggplot"
将绘图分配给对象:
plot <- my_sim_slopes[["jnplot"]]
底部粗体线似乎建立在第 7 层和第 8 层上,要将其删除,请将其设置为 NULL:
plot[["layers"]][c(7, 8)] <- NULL
最后,由于它是一个 ggplot 对象,因此可以使用其功能对其进行自定义:
plot +
labs(title = "My new Johnson-Neyman Plot title",
x = "My new x axis",
y = "My new y axis") +
scale_x_continuous(breaks = 1:7, limits = c(0, 7)) +
scale_y_continuous(breaks = seq(0, 1, 0.2), limits = c(0, 1)) +
theme(legend.position = "bottom", text = element_text(size = 12))
评论
1赞
zhang xia
11/15/2023
非常感谢您的帮助!你已经非常清楚地描述了每个步骤。我还想问你,粗体的底线是在 7 楼或 8 楼。你怎么知道这些信息?
0赞
K. Peltzer
11/15/2023
您好,感谢您的认可。如果答案有帮助,请将其标记为正确。至于底线,可以通过检查对象来推断,因为层元素 7 和 8 在其“构造函数”子元素中分别包含(水平线,通常用于它)和(类似于水平线,但更容易按位置自定义)。在这种怀疑下,去掉这两个元素就足以确认确实是底部的黑线。geom_hline
geom_segment
上一个:了解套索和岭回归
评论