我正在尝试运行一个简单的曲线图列表,来评估R中赋值的正确线性回归模型。基本上,在11列中,第一列是y,不同的列x= 3:11是θ,或者y所依赖的变量。第2列的分类值基本上为1-9 (9个类别)。
我正在尝试创建图形矩阵。我可以一个接一个地做图形,这应该适用于赋值,但我试图使用一个循环来完成它。代码如下:
第一列是y,从属和第3-11列是变量。如果我省略了根据第二列的着色,我可以用一个基图来完成它。如果我尝试上面的代码,我得不到任何结果
par(mfrow(3,3))
for(i in 3:11){
ggplot(hd,aes(x=hd[1,],y=hd[,i],color=hd[,2]))+
geom_point()
}编辑:这是一个可重现的数据
library(dplyr)
library(ggplot2)
hd=data(economics)
par(mfrow(2,2))
for(i in 3:6){
ggplot(hd,aes(x=hd[3,],y=hd[,i])+
geom_point()
}这没有颜色分类,但是如果我能让它工作,我可以只添加color=列参数
发布于 2019-11-12 18:44:01
如果我理解你想要的是什么,下面这样的东西应该可以工作。首先,制作一些可重现的数据,大致像您所描述的那样:
library(magrittr)
library(tidyverse)
data <- tibble(y = rnorm(10),
category = factor(sample(1:9, 10, replace = TRUE))) %>%
inset(paste0("x", 1:11), value = rnorm(110)) %>%
pivot_longer(-c(y, category), names_to = "x_name", values_to = "x")数据如下所示:
# A tibble: 6 x 4
y category x_name x
<dbl> <fct> <chr> <dbl>
1 1.84 6 x1 1.06
2 1.84 6 x2 0.744
3 1.84 6 x3 -1.19
4 1.84 6 x4 1.88
5 1.84 6 x5 2.16
6 1.84 6 x6 -1.58然后,您可以在此处使用facet_wrap为每个x_name创建一个带有面板的网格。我已经添加了geom_smooth:
ggplot(data, aes(x = x, y = y)) +
geom_point(aes(colour = category)) +
facet_wrap(~x_name) +
geom_smooth(method = "lm")

发布于 2019-11-12 18:58:42
我还鼓励您提供一个可重现的示例。
而不是"par(mfrow)“ggplot使用刻面的概念。看看这里:ggplot facetting
library(tidyr)
library(dplyr)
library(ggplot2)
# assuming the names of your dataframe hd are like this:
names(hd) = c('y', 'cat', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9')
# then, the following code could solve your problem:
hd %>%
pivot_longer(x1:x9, names_to=var_x, values_to=val_x) %>%
ggplot(hd, aes(x=y, y=val_x, colour=cat)) +
geom_point() +
facet_wrap(~var_x, ncol=3)https://stackoverflow.com/questions/58815296
复制相似问题