Legenda spplot raster: cara menambahkan judul di sebelahnya

8

Setelah belajar sebentar bagaimana membuat bagan dari objek raster, saya mendapatkan hampir semua yang saya butuhkan kecuali menambahkan judul pada legenda spplot.

Apa yang saya coba:

  1. untuk digunakan mtext("XXX (m)", side=4),
  2. untuk menambahkan di sp.textluar kotak,
  3. untuk digunakan legend.args = list(title="XXX (m)").

Gambar di bawah ini menunjukkan dengan tepat, fitur yang saya tambahkan secara manual ke plot saya, dan di mana saya ingin memasukkan menggunakan R.

masukkan deskripsi gambar di sini

Berikut adalah satu contoh, dari apa yang saya dapatkan sejauh ini:

require(raster)
require(sp)
require(lattice)

north <- list("SpatialPolygonsRescale", layout.north.arrow(type=1), offset = c(0.95,0.85), scale=0.1)
scale <- list("SpatialPolygonsRescale", layout.scale.bar(),
      offset = c(0.55, 0.03), scale = 0.4, fill = c("transparent","black"))
txt1 <- list("sp.text", c(0.55, 0.08), "0")
txt2 <- list("sp.text", c(0.75, 0.08), "0.2")
txt3 <- list("sp.text", c(0.95, 0.08), "0.4")
raster_layout <- list(north,scale,txt1,txt2,txt3)
cuts <- c(110,120,130,140,150,160,170,180,190,200)
spplot(raster(volcano), scales = list(draw=T), at=cuts, col.regions = palette(gray(seq(0,0.9,len=9))), sp.layout= raster_layout, add=T)  

Terima kasih atas bantuan Anda.

Andre Silva
sumber

Jawaban:

10

Anda tidak dapat menggunakan di mtextsini, karena spplotdidasarkan pada paket kisi . mtexthanya dapat digunakan dengan grafis dasar.

R> p <- spplot(raster(volcano), scales = list(draw=T), at=cuts,
+              col.regions = palette(gray(seq(0,0.9,len=9))),
+              sp.layout= raster_layout, add=T)
R> class(p)
[1] "trellis"  # -> lattice package

The latticepaket merek menggunakan satu gridmesin grafis, yang merupakan sistem grafis tingkat rendah untuk R. Kedua paket adalah bagian dari distribusi basis R.

Untuk menambahkan label teks pada posisi sewenang-wenang, Anda dapat menggunakan fungsi grid.text, misalnya

library("grid")
grid.text("XXX (m)", x=unit(0.95, "npc"), y=unit(0.50, "npc"), rot=-90)
rcs
sumber