如何在具有结构的循环中生成的图形中添加标题图

时间:2013-04-11 19:38:12

标签: r ggplot2

我正在使用包含各种连续变量的数据库,我必须使用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循环中添加所有图形的每个变量的名称。感谢。

2 个答案:

答案 0 :(得分: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))
}

答案 1 :(得分:0)

就像@Baptiste说的那样,只需使用facetting。一个例子:

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

enter image description here

数据的结构必须类似于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