-1

我正在使用具有各种连续变量的数据库,并且必须使用 ggplot2 制作多个图。当我制作循环时,我不能将变量的名称放在每个情节的主要部分。我的循环是下一个:

library(ggplot2)
for(i in 1:10)
{
(qplot(Total, data = BaseClientes, geom = "histogram",binwidth = 50, fill = BaseClientes[,i])+geom_histogram(breaks =c(0,5000,10000,15000,20000,25000,30000,35000,40000)))
}

我的问题是我必须手动添加每个变量的名称,如下所示:

(qplot(Total, data = BaseClientes, geom = "histogram",binwidth = 50, fill = 4 Groups,main="4 Groups Monto Total")+geom_histogram(breaks =c(0,5000,10000,15000,20000,25000,30000,35000,40000)))

4 groups变量的名称在哪里。是否可以在 for 循环中添加所有图形的每个变量的名称。谢谢。

4

2 回答 2

1

已经给出的答案将是“最佳实践”,但如果你必须使用,那么你只需要注意和for之间的区别。第二个将保留它的类BaseClients[,i]BaseClients[i]

> df <- data.frame( var1 = 1:3, var2 = rnorm(3), var3 = sample(10,3))
> df
  var1        var2 var3
1    1 -0.29624838    9
2    2  0.08443593    4
3    3 -1.00889635    8

> class(df[,1])
[1] "integer"

> class(df[1])
[1] "data.frame"

还有它的names属性。简而言之,试试这个:

for(i in 1:10) {
  qplot(Total, data = BaseClientes, geom = "histogram",binwidth = 50,
        main = names(BaseClientes[i])) +
    geom_histogram(breaks =c(0,5000,10000,15000,20000,25000,30000,35000,40000))
}
于 2013-04-11T20:41:23.260 回答
0

就像@Baptiste 所说,只需使用刻面。一个例子:

ggplot(aes(x = mpg), data = mtcars) + 
    geom_histogram() + 
    facet_wrap(~ cyl)

在此处输入图像描述

数据的结构需要类似于mtcars该数据集的样本:

> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
于 2013-04-11T19:51:27.630 回答