2

サイズが n*k の R でヒートマップを作成しました。i 番目の要素に使用される個々の色を抽出することは可能ですか?

たとえば、n=3 (列) および k=50 (行) の場合、n は任意の重大度レベルであり、k は英国の地区を表します。

これらの地区のポリゴンがあり、一貫性を保つために、ヒートマップ全体と同じ色をポリゴンの塗りつぶしとして使用して、重大度に基づいて 3 つの個別のマップを作成したいと考えています。

ありがとう、アラン

4

1 に答える 1

2

これがどのように機能するかを理解するには、 のコードを調べる必要がありましたpheatmap。最初に行列を生成しましょう。

A <- matrix(1:10, 2, 5)

デフォルトのパレットは次のように定義されています

pal <- colorRampPalette(rev(RColorBrewer::brewer.pal(n = 7, name = "RdYlBu")))(100)

次に、ブレーク値を定義し、ブレークによって定義された各間隔に色を割り当てます。

bks <- pheatmap:::generate_breaks(A, length(pal), center = F)
A2 <- pheatmap:::scale_colours(A, col=pal, breaks=bks)

MatrixA2には、 の各セルに関連付けられた色が含まれますA

A2
#          [,1]      [,2]      [,3]      [,4]      [,5]     
# [1,] "#4575B4" "#ABD0E4" "#F4FBD2" "#FEDF8F" "#EF6D48"
# [2,] "#77A6CE" "#E0F3F7" "#FEF4AF" "#FCA86B" "#D73027"

最後に、最初に でA定義された色で、さらにで表すことができます。A2pheatmapimage

pheatmap(t(A[,5:1]),cluster_rows = F, cluster_cols = F)

ピートマップ付き

image(A, col=A2)

画像あり

参照: Kolde, R. (2013). pheatmap: きれいなヒートマップ。

于 2015-01-07T14:28:24.100 に答える