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