R 多个变量相对于单个变量的散点图

R 多个变量相对于单个变量的散点图,r,scatter-plot,R,Scatter Plot,我想得到一个一维的散点图数组,所有这些都是针对一个变量的。我可以从“pairs()”返回的完整矩阵中提取它们,但其他绘图在我的示例中没有用处。当变量数较高时,将布局更改为c(1,)将无法将整个绘图正确地放在一行中 attach(iris) caret::featurePlot(x = iris[, 1:4], y = iris[,5],#Species plot = "pairs", auto.key = list(columns = 3))

我想得到一个一维的散点图数组,所有这些都是针对一个变量的。我可以从“pairs()”返回的完整矩阵中提取它们,但其他绘图在我的示例中没有用处。当变量数较高时,将布局更改为c(1,)将无法将整个绘图正确地放在一行中

attach(iris)
caret::featurePlot(x = iris[, 1:4],
        y = iris[,5],#Species
        plot = "pairs",
        auto.key = list(columns = 3))

请使用条件变量为“物种”的“iris”数据集进行说明。我想要的只是一个简单的绘图,只需将“花瓣宽度”与其他3个预测因子(即“萼片长度”、“萼片宽度”和“花瓣长度”)进行对比,并将其着色为“物种”。

(没有a,很难做很多这方面的工作。)

一个简单的解决方案是打开一个pdf接受绘制的图,然后循环其他变量,一次绘制一个散点图。您可以使用不同的符号和颜色来表示采用两种不同级别因子的观察结果

pdf(file=<something>, <other settings>)
for(i in 1:13){  # or perhaps: for(i in c(1,2,5,10,11,12,13)){
  plot(AF[,i], AF[,14], pch=<something>, col=<something>)
}
dev.off()
您将在新页面上获得每个绘图的pdf。@Hack-R和@Alex给出的答案的问题(因为没有更好的词,我不想在这里过于苛刻)是它们的伸缩性不好。只有三张图片就可以了,但是当你有十三张(!)的时候,它们的信息量就不大了。pdf中的所有绘图将看起来干净且成比例,如下图所示(这是pdf中的第一个绘图):

数据(虹膜)
图书馆(“ggplot2”)
图书馆(“重塑2”)
#融化你的数据
iris$SECTIONSBase R解决方案--
par(mfrow=c(1,n))
是关键:

data(iris)
par(mfrow=c(1,3))
plot(iris$Sepal.Length, iris[,2])
plot(iris$Sepal.Length, iris[,3])
plot(iris$Sepal.Length, iris[,4])


显然,您可以使用
base
绘图的其他功能来自定义绘图

名为
AF
的对象在哪里?我们需要一个可复制的例子。还有一点不清楚你在问什么。添加到@Hack-R:你应该检查对象,给出完整的绘图矩阵(我从你的最后一句话中了解到,你想要该矩阵的一部分,即最右边的列)为了了解您是否可以进一步处理此问题,我先前使用的AF数据集现在更改为“iris”数据集,以确保再现性。Thanks@LithinReddy谢谢你的额外努力。这是值得的,相信我。非常感谢。你能按它们的种类为点添加颜色吗?谢谢。我以前尝试过这个技巧,但无法将它放在一行中,因为我有太多的变量要绘制。无法尝试松开中间的空格!(iris数据仅用于说明,我的原始数据集约有14个变量)@litinreddy您始终可以使用多行。。。13个情节听起来雄心勃勃,在任何情况下都要放在一行
data(iris)
library("ggplot2")
library("reshape2")

#melt your data
iris$Species <- as.character(iris$Species)
df_melt      <- melt(iris,c("Petal.Width","Species"))
head(df_melt)

# define colors
df_melt$color <- "blue"
df_melt$color[df_melt$Species == "setosa"]      <- "green"
df_melt$color[df_melt$Species == "versicolor"]  <- "orange"

#scatterplot per group
ggplot(df_melt,aes(Petal.Width,value)) +
  geom_point(col=df_melt$color) +
  facet_grid(.~variable) 
data(iris)
par(mfrow=c(1,3))
plot(iris$Sepal.Length, iris[,2])
plot(iris$Sepal.Length, iris[,3])
plot(iris$Sepal.Length, iris[,4])