4

次に例を示します。

require(ggplot2)
p <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()

yintercept <- c(5, 12, 20, 28, 29, 40)
col <- c("red", "blue", "green", "pink", "yellow", "tan")

# for the first level yintercept, and col 
p + geom_hline(aes(yintercept = 5), col = "red")

上記のように、より多くのレベルの変数があります。長い「+」式を記述する代わりに、プロセスをループできますか。簡単な質問でごめんなさい。

編集:数式のx変数またはy変数をループする方法

   myd <- data.frame (y = rnorm (100, 5, 10), X1 = rnorm (100, 5, 1), 
    X3 = rnorm (100, 10, 2), X4 = rnorm (100, 50,4))

x <- c("X1",  "X2",   "X3", "X4")

p <- ggplot(myd, aes(y = y)) + 
 mapply ( function (x) (geom_point(x = aes_string (x))))
4

2 に答える 2

5

これを行うggplot2の方法は、常にデータをデータフレームに配置し、美的感覚をマッピングすることです。それは物事をはるかに簡単にします:

df <- data.frame(yint = yintercept)

# for the first level yintercept, and col 
p + geom_hline(data = df,aes(yintercept=yint,colour = factor(yint))) + 
    scale_colour_manual(values = col,guide = "none")
于 2012-07-20T00:49:47.263 に答える
4

試す

p+mapply(function(a,b){dum<-aes_string(yintercept=a);
                       geom_hline(dum, col = b)},a=yintercept,b=col)
于 2012-07-20T00:46:49.847 に答える