ラスターspplot凡例:タイトルを横に追加する方法


8

しばらくラスターオブジェクトからグラフを作成する方法を研究した後、spplotの凡例にタイトルを追加することを除いて、必要なほぼすべてのものを得ました。

私が試したこと:

  1. 使用するにはmtext("XXX (m)", side=4)
  2. sp.textグリッドの外側に追加するには、
  3. 使用するlegend.args = list(title="XXX (m)")

下の写真は、手動でプロットに追加した機能を正確に示しており、Rを使用して追加したいと思います。

ここに画像の説明を入力してください

これが私がこれまでに得たものの一例です:

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)  

ご協力いただきありがとうございます。

回答:


10

ラティスパッケージに基づいているmtextため、ここでは使用できません。基本グラフィックスでのみ使用できます。spplotmtext

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

latticeパッケージは、使用なりgrid両方パッケージは、ベースRの分布の一部であるR.ための低レベルのグラフィックスシステムであるグラフィックエンジンを、。

任意の位置にテキストラベルを追加するには、関数を使用することができgrid.text、例えば

library("grid")
grid.text("XXX (m)", x=unit(0.95, "npc"), y=unit(0.50, "npc"), rot=-90)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.