为vioplot

时间:2017-04-18 12:15:06

标签: r

我想使用 vioplot 库生成一些小提琴图。不幸的是,vioplot将向量作为参数。所以它的工作原理如下,但它很难看:

library(vioplot)
x1 = rnorm(200, 10, 5)
x2 = rnorm(200, 20, 5)
x3 = rnorm(200, 30, 5)
x4 = rnorm(200, 10, 15)
x5 = rnorm(200, 10, 25)
x6 = rnorm(200, 20, 35)
x7 = rnorm(200, 40, 15)
x8 = rnorm(200, 50, 15)
// x9 and more .....

// plot 
vioplot(x1,x2,x3,x4,x5,x6,x7,x8)
// vioplot(x1 to x20 ) ? 

如何通过循环改进它?

我想做点什么:

  // Generate a random data frame
  df = data.frame()
  for (i in 1:100)
  {
      df = cbind(df, rnorm(200, 10, i))
  }

  // This line is not working
  vioplot(df[1:15],)

我想我需要一些元编程来生成我的参数列表

1 个答案:

答案 0 :(得分:0)

我成功使用元编程如下:

 arguments = list() 
 for (i in 1:15)
 {
   arguments[[i]] = rnorm(100, i) // positionnal arguments
 }

 arguments[["col"]] = "red" // named arguments 

 do.call("vioplot", arguments)