R中二进制变量的图形

时间:2011-06-03 21:41:48

标签: r

我想绘制一个简单的图形。我有一个带有n个rown和k列的数据集,其中每一行都有一个0和1的序列。我想为所有行准确地绘制这个序列。

实际上我想重现图24.1,p。 516,Gelman和Hill的书(Data aAnalysis Using Regression and Multilevel / Hierarchical Models)。我怀疑他在Latex中制作了图形,但是我无法在R中复制这个简单的图形似乎很荒谬。图像是like this。正如您从链接中看到的那样,“ones”被“S”替换,“0”被“。”替换。这是一个简单的图形,但它按时间显示每个单独的响应。

3 个答案:

答案 0 :(得分:4)

我会使用sprintf使用带格式的文本输出。更清洁,更简单。如果你还想要一个情节,你可以选择以下内容:

给定包含您数据的矩阵tbl

tbl <- matrix(data=rep(0:1,25), nrow=5)

您可以生成以下情节:

plot(1, 1, xlim=c(1,dim(tbl)[2]+.5), ylim=c(0.5,dim(tbl)[1]), type="n")
lapply(1:dim(tbl)[1], function(x) {
  text(x=c(1:dim(tbl)[2]), y=rep(x,dim(tbl)[2]), labels=tbl[x,])
})

使用此作为基础,您可以使用text并使用args绘图,以便按照您希望的方式对绘图进行样式化。

答案 1 :(得分:3)

以下是两种可能的解决方案,基于使用此辅助函数生成的假数据:

generate.data <- function(rate=.3, dim=c(25,25)) {
  tmp <- rep(".", prod(dim))
  tmp[sample(1:prod(dim), ceiling(prod(dim)*rate))] <- "S"
  m <- matrix(tmp, nr=dim[1], nc=dim[2])
  return(m)
}
  1. 基于文字的输出

    x <- generate.data()
    rownames(x) <- colnames(x) <- 1:25
    capture.output(as.table(x), file="res.txt")
    

    文件res.txt包含一个漂亮的控制台输出版本;您可以使用任何txt到pdf转换器将其转换为pdf(我使用PDFlib中的那个)。以下是文本文件的屏幕截图:

    enter image description here

  2. 基于图像的输出

    首先,这是我使用的绘图功能:

    make.table <- function(x, labels=NULL) {
      # x = matrix
      # labels = list of labels for x and y
      coord.xy <- expand.grid(x=1:nrow(x), y=1:ncol(x))
      opar <- par(mar=rep(1,4), las=1)
      plot.new() 
      plot.window(xlim=c(0, ncol(x)), ylim=c(0, nrow(x)))
      text(coord.xy$x, coord.xy$y, c(x), adj=c(0,1)) 
      if (!is.null(labels)) {
        mtext(labels[[1]], side=3, line=-1, at=seq(1, ncol(x)), cex=.8)
        mtext(labels[[2]], side=2, line=-1, at=seq(1, nrow(x)), cex=.8, padj=1)
      }
      par(opar)
    }
    

    然后我称之为

    make.table(x, list(1:25, 1:25))
    

    这是结果(保存为png,pdf,jpg或其他)。

    enter image description here

答案 2 :(得分:2)

据我所知,这是一个文本表。我想知道你为什么想把它变成图形?无论如何,快速解决方案(无论哪种方式)

  1. 制作文本表(通过编程或输入)并制作其截图并将图像嵌入图中。

  2. 制作一个空白的图,并通过使用“文本”功能编程R将文本放在图上。有关“文字”的更多信息,请参阅http://cran.r-project.org/doc/contrib/Lemon-kickstart/kr_adtxt.html