我在格式中有几个回归模型 m< -lm(y~x,dat)
每个模型的y不同,但总是相同的x
例如
data(Iris)
m <- lm(Iris$Sepal.L. ~ Sepal.W., data = Iris)
我从m
中提取了X和Y.X <- m$call [2][[1]][[3]]
Y <- m$call [2][[1]][[2]]
然后我尝试在ggplot
中使用X和Y代表x和yggplot() +
geom_point(data = Iris,
aes(x = X , y = Y), size = 3)
我收到错误消息:
不知道如何自动选择类型调用对象的比例。默认为连续。
不知道如何自动选择类型调用对象的比例。默认为连续。
错误:美学必须是长度1或与数据(150)相同:x,y,大小
如何在ggplot中正确使用调用向量X和Y?
注意:我想在一个循环中使用这段代码来指定一个Y的列表,所以我不想手动编写 aes(x = Iris $ Sepal.W。,y = Iris $ Sepal.L。)
答案 0 :(得分:1)
我的R未附带Iris
数据集,因此我将使用公共iris
。
data(iris)
m <- lm(Sepal.Length ~ Sepal.Width, data = iris)
X <- as.character(m$call [2][[1]][[3]])
Y <- as.character(m$call[2][[1]][[2]])
ggplot() +
geom_point(aes(x = iris[, X] , y = iris[, Y]), size = 3)
注意一些事情。我的代码中没有data
参数,因为您没有使用它,因为您将数据作为向量传递(例如iris[, X]
)。我将X
和Y
强制转换为某个角色,因为默认情况下,他们的班级为name
。
答案 1 :(得分:0)
我想我已经解决了!
如果它有助于其他人在这里是解决方案。 (我需要看到更改x和y标签,但那是一个不同的问题)
ggplot() +
geom_point(data = Iris,
aes(x = Iris[[X]] , y = Iris[[Y]]), size = 3)