5

残念ながら、再び spplot() の質問があります。

splot() の色が、デフォルトで splot が行う自動値ではなく、絶対値を表すようにします。

これを実現するには、描画したい変数から係数を作成します (コマンド cut() を使用)。これは非常にうまく機能しますが、カラーキーはまったく見栄えがよくありません。

自分で見てください:

library(sp)

data(meuse.grid)
gridded(meuse.grid) = ~x+y

meuse.grid$random <- rnorm(nrow(meuse.grid), 7, 2)
meuse.grid$random[meuse.grid$random < 0] <- 0
meuse.grid$random[meuse.grid$random > 10] <- 10
# making a factor out of meuse.grid$ random to have absolute values plotted
meuse.grid$random <- cut(meuse.grid$random, seq(0, 10, 0.1)) 

spplot(meuse.grid, c("random"), col.regions = rainbow(100, start = 4/6, end = 1))

右側の color.key の見栄えを良くするにはどうすればよいですか - 目盛りとラベルを少なくしたい (おそらく、color.key の両端に 1 つのラベルのみ)

前もって感謝します!

[編集] 絶対値の意味を明確にするために: 海の高さを表示したい地図を想像してください。Seaheight = 0 (最小値) は常に青色で表示されます。Seaheight = 10 (例として、これが最大値です) は常に赤で表示されます。地図上に表示される地域に海がなくても、これは変わらないはずです。この例では、cut() コマンドを使用してこれを実現しています。したがって、この部分は正常に機能します。

これが私の質問 です 私が気に入らないのは、右側の色の説明です。100 個のティックがあり、各ティックにはラベルがあります。目盛りとラベルを減らしたい。

4

2 に答える 2

6

行く方法は、属性 colorkey を使用することです。例えば:

## labels
labelat = c(1, 2, 3, 4, 5)
labeltext = c("one", "two", "three", "four", "five")

## plot
spplot(meuse.grid,
    c("random"),
    col.regions = rainbow(100, start = 4/6, end = 1),
    colorkey = list(
        labels=list(
            at = labelat,
            labels = labeltext
        )
    )
)
于 2011-04-12T14:33:45.787 に答える
0

まず、ここで何を望んでいるのかがまったく明確ではありません。color.key見栄えを良くする方法はたくさんありますが、それはまず、splot に渡されるデータと、それに対して何が求められているかを理解することです。cut() は (2.3, 5.34] のような完全にフォーマットされた間隔を提供していますが、これは別の方法で処理する必要があり、プロットのマージンを増やしたり、ラベルの特定のフォーマットや間隔を広げたりする必要があります。最終的に欲しい。

おそらく、入力値から丸められた整数値が必要ですか?

library(sp)

data(meuse.grid)
gridded(meuse.grid) = ~x+y

meuse.grid$random <- rnorm(nrow(meuse.grid), 7, 2)

値を丸めます (または trunc()、ceil()、floor() など)。

meuse.grid$rclass <- round(meuse.grid$random)

spplot(meuse.grid, c("rclass"), col.regions = rainbow(100, start = 4/6, end = 1))
于 2011-03-01T23:40:19.987 に答える