gpt4 book ai didi

r - R :par(cex.lab=2) doesn't work in plot(effect(),…)

转载 作者:行者123 更新时间:2023-12-03 08:47:33 24 4
gpt4 key购买 nike

我使用包括group(1 = smoke,2 = control),gender(1 = m,2 = f)和诸如体重之类的因变量的数据库进行了线性回归。我想用情节看到群体和性别之间的相互作用。我需要更改轴标签的大小,但它不适用于par()。代码是这样的:

lin <- lm(weight ~ group + gender + group:gender, data=data)
par(cex.lab = 2, cex.axis = 2)
library(effects)
plot(effect("group:gender",lin,,list(gender=c(1,2))),multiline=T)

大小不变。如果我想像这样删除轴:
plot(effect("group:gender",lin,,list(gender=c(1,2))),multiline=T,axes=FALSE)

它给了我这个错误:
$ operator is invalid for atomic vectors

如何解决呢?

最佳答案

我不知道为什么会这样,我的猜测是class(effect)是“eff”,可能不适合正确绘制该图,以避免将此对象转换为data.frame然后使用par功能可以完成您的任务。

回答您的问题:如果您使用不同的值更改par选项,则字体大小将发生变化,就像我在下面提到的图表中一样。

你可以这样做:

library(effects)

lin <- lm(mpg ~ cyl + am + am:cyl, data=mtcars)
par(cex.lab=1.2, cex.axis=1.2, cex.main=1.2, cex.sub=1.2) #Here you can check, the par options, if you change it the font will incrase or decrese
effect1 <- data.frame(effect("cyl:am",lin,,list(cyl=c(4,6,8))))
effects <- effect1[,c("cyl","am", "fit")] ##Keeping only the required columns

您可以通过使用三个对象(cyl,am和fit)来绘制带有效果的图,但是,线条被连接起来了,我不知道在基本图R中有像ggplot的group这样的功能。所以我将其拆分然后绘制它。
xvals <- split(effects$am,effects$cyl) #split x-axis basis cyl
yvals <- split(effects$fit,effects$cyl) #split y-axis basis cyl

plot(1:max(unlist(xvals)),xlim = c(0,max(unlist(xvals))),ylim=(c(0,max(unlist(yvals)))),type="n", main="plot b/w mpg, am * cyl",
xlab="am", ylab="mpg") #adding header, labels and xlim and ylim to the graphs

Map(lines,xvals,yvals,col=c("red","blue","black"),pch=1:2,type="o") #plotting the objects using Map
legend("bottomright", legend=c("8", "6", "4"),
col=c("red", "blue", "black"), lty=1:2, cex=0.8) #adding the legend

输出:

,par选项固定为1.2
enter image description here

,par选项固定为1.5:

enter image description here

关于r - R :par(cex.lab=2) doesn't work in plot(effect(),…),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50521754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com