Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot矩阵,x、y和颜色=使用循环的类别_R_Ggplot2 - Fatal编程技术网

R ggplot矩阵,x、y和颜色=使用循环的类别

R ggplot矩阵,x、y和颜色=使用循环的类别,r,ggplot2,R,Ggplot2,我正在尝试运行一个简单的绘图列表,以评估我在R中的赋值的正确线性回归模型。基本上,在11列中,第1列是y,不同的x=3:11列是θ或y依赖的变量。第2列的分类值基本上为1-9(9个类别) 我正在尝试创建图形矩阵。我可以一个接一个地画这些图,这应该可以配合作业,但我试着用一个循环来完成它。代码如下: 第1列为y,相关列和第3-11列为变量。如果我根据第2列省略了着色,我可以用底图来完成它。如果我尝试上面的代码,就不会得到绘图 par(mfrow(3,3)) for(i in 3:11){ gg

我正在尝试运行一个简单的绘图列表,以评估我在R中的赋值的正确线性回归模型。基本上,在11列中,第1列是y,不同的x=3:11列是θ或y依赖的变量。第2列的分类值基本上为1-9(9个类别)

我正在尝试创建图形矩阵。我可以一个接一个地画这些图,这应该可以配合作业,但我试着用一个循环来完成它。代码如下:

第1列为y,相关列和第3-11列为变量。如果我根据第2列省略了着色,我可以用底图来完成它。如果我尝试上面的代码,就不会得到绘图

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=column参数,如果我理解你的意思,下面的方法应该可以。首先,制作一些与您描述的大致相同的可复制数据:

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")

如果我理解你的意图,下面的方法应该可以奏效。首先,制作一些与您描述的大致相同的可复制数据:

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")

我还鼓励您提供一个可复制的示例

ggplot使用了刻面的概念,而不是“par(mfrow)”。请看这里:


我还鼓励您提供一个可复制的示例

ggplot使用了刻面的概念,而不是“par(mfrow)”。请看这里:

请看,请看
ggplot(data, aes(x = x, y = y)) +
  geom_point(aes(colour = category)) +
  facet_wrap(~x_name) +
  geom_smooth(method = "lm")
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)