2015-09-18 15 views
5

Levelplot'ta arsa alanından metin eklemek istiyorum. Aşağıdaki örnekte, metni sivri konumdaki bir yere ihtiyacım var.Levelplot panel alanından metin ekleme

library (raster) 
library(rasterVis) 

f <- system.file("external/test.grd", package="raster") 
r <- raster(f) 
levelplot(r) 

Başarı ile mtext işlevini denedim. Baska öneri?

mtext("text", side=3, line=0) 

enter image description here

cevap

8

TLDR;

Grafiği daha alt düzey ızgara grafiksel işlevlerini kullanarak grafiğe ekleyebilirsiniz.

library(grid) 
seekViewport("plot_01.legend.top.vp") 
grid.text("Hello", x=0, y=unit(1,"npc") + unit(0.4, "lines"), just=c("left", "bottom"), 
      gp=gpar(cex=1.6)) 

rasterVis ve diğer kafes tabanlı paketler ızgara grafik sistemi, mtext() bir parçası olduğu değil taban grafiksel sistem kullanın: Bu durumda, böyle bir şey yapmak. ızgara kullanarak İşte

, ben üst kenar boşluğu arsa basılı olduğundan hangi görüntü alanının sol üst köşesinde (teknik ızgara terim) üstünde bir konumda 0,4 çizgiler metin ekleme hakkında gitmek istiyorum nasıl .

  • Öncelikle, ilgili görünümün adını bulun.

    library(grid) 
    levelplot(r) 
    grid.ls(viewport=TRUE, grobs=FALSE) ## Prints out a listing of all viewports in plot 
    

    grid.ls() tarafından döndürülen listenin hızlı tarama parlak bir aday gibi görünüyor plot_01.legend.top.vp adında bir görünüm, ortaya çıkıyor. Eğer doğru biri olup olmadığını kontrol etmek istiyorsanız, siz (viewport tam yolunu kullanır) aşağıdaki gibi bir şey ile onun etrafında bir dikdörtgen çizmek: Ardından

    grid.rect(vp = "plot_01.toplevel.vp::plot_01.legend.top.vp", 
          gp = gpar(col = "red")) 
    
  • , ızgara kullanarak Oldukça esnek olan koordinat sistemi, istenen metni o viewport'un sol üst köşesinin hemen üstüne yerleştirin.

    ll <- seekViewport("plot_01.legend.top.vp") 
    grid.text("Hello", x = 0, y = unit(1,"npc") + unit(0.4, "lines"), 
          just = c("left", "bottom"), 
          gp = gpar(cex=1.6)) 
    upViewport(ll) ## steps back up to viewport from which seekViewport was called 
    

enter image description here