R Bild-Funktion in R

Ich bin mit der angehängten Bild-Funktion in R. bevorzuge ich diese als zu widersetzen, heatmap für die Geschwindigkeit, da ich es für sehr großen Matrizen (~ 400000 400).

Das problem in meiner Funktion, ist der dynamische Bereich für die Farbpalette, es ist nur blau und gelb in meinem Fall. Ich habe versucht, einige änderungen an der colorramp Linie, aber keiner gab mir die gewünschte Ausgabe.

Die Letzte Farbe ramp option, versuchte ich mit einem schönen Paket in R genannt ColorRamps, die angemessene Ergebnisse:

library("colorRamps")
ColorRamp = blue2green2red(400)
ColorLevels <- seq(min, max, length=length(ColorRamp))

Ist allerdings noch nicht so flexibel wie matlab Farbverlauf Optionen.

Ich bin nicht sehr vertraut, wie zu machen es besser Aussehen und mit mehr Reichweite, wie auf dem Foto angebracht.R Bild-Funktion in R

Bitte informieren Sie mich, wenn es wäre möglich, mein Bild zu ändern-Funktion zu machen suchen mein Bild wie das auf dem Foto.

Die R-Funktion verwende ich für das zeichnen von Bildern mit raster = TRUE for speed ist wie folgt:

# ----- Define a function for plotting a matrix ----- #
myImagePlot <- function(x, filename, ...){
  dev = "pdf"
  #filename = '/home/unix/dfernand/test.pdf'
  if(dev == "pdf") { pdf(filename, version = "1.4") } else{}
     min <- min(x)
     max <- max(x)
     yLabels <- rownames(x)
     xLabels <- colnames(x)
     title <-c()
  # check for additional function arguments
  if( length(list(...)) ){
    Lst <- list(...)
    if( !is.null(Lst$zlim) ){
       min <- Lst$zlim[1]
       max <- Lst$zlim[2]
    }
    if( !is.null(Lst$yLabels) ){
       yLabels <- c(Lst$yLabels)
    }
    if( !is.null(Lst$xLabels) ){
       xLabels <- c(Lst$xLabels)
    }
    if( !is.null(Lst$title) ){
       title <- Lst$title
    }
  }
# check for null values
if( is.null(xLabels) ){
   xLabels <- c(1:ncol(x))
}
if( is.null(yLabels) ){
   yLabels <- c(1:nrow(x))
}

layout(matrix(data=c(1,2), nrow=1, ncol=2), widths=c(4,1), heights=c(1,1))

 # Red and green range from 0 to 1 while Blue ranges from 1 to 0
 ColorRamp <- rgb( seq(0,1,length=256),  # Red
                   seq(0,1,length=256),  # Green
                   seq(1,0,length=256))  # Blue
 ColorLevels <- seq(min, max, length=length(ColorRamp))

 # Reverse Y axis
 reverse <- nrow(x) : 1
 yLabels <- yLabels[reverse]
 x <- x[reverse,]

 # Data Map
 par(mar = c(3,5,2.5,2))
 image(1:length(xLabels), 1:length(yLabels), t(x), col=ColorRamp, xlab="",
 ylab="", axes=FALSE, zlim=c(min,max), useRaster=TRUE)
 if( !is.null(title) ){
    title(main=title)
 }
# Here we define the axis, left of the plot, clustering trees....
#axis(BELOW<-1, at=1:length(xLabels), labels=xLabels, cex.axis=0.7)
# axis(LEFT <-2, at=1:length(yLabels), labels=yLabels, las= HORIZONTAL<-1,
# cex.axis=0.7)

 # Color Scale (right side of the image plot)
 par(mar = c(3,2.5,2.5,2))
 image(1, ColorLevels,
      matrix(data=ColorLevels, ncol=length(ColorLevels),nrow=1),
      col=ColorRamp,
      xlab="",ylab="",
      xaxt="n", useRaster=TRUE)

 layout(1)
  if( dev == "pdf") {
    dev.off() }
}
# ----- END plot function ----- #
  • nur resample diese für die Auswertung effizient, dass ist viel zu viel detail für ein Bild
InformationsquelleAutor Dnaiel | 2012-11-11
Schreibe einen Kommentar