15

因子に基づいて異なるグラデーションのハイカラーを使用するgeom_tileggplot2 でヒートマップを作成することに興味があります。

以下のプロットは、個々のタイルが に基づいて青または赤に着色されたプロットを作成しますが、xy_typeグラデーションはありません。

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=factor(xy_type))) + 
  scale_fill_manual(values=c("blue", "red"))

xy_type以下のプロットでは、色を選択するために係数を使用していませんが、 xy_avg_value.

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=xy_avg_value))

これらの 2 つのプロットをブレンドする手法はありますか? を使用しfacet_grid(xy_type ~ .)て、勾配を使用してこのデータの個別のプロットを作成できます。geom_tileこれは最終的にマップ (x ~ y 座標) になるため、異なるグラデーションを 1 つのマップにまとめて表示する方法を見つけたいと考えています。

4

1 に答える 1

22

一般に、ggplot2は 1 つのタイプの複数のスケール (つまり、複数の色または塗りつぶしスケール) を許可しないため、これは (簡単に) 可能ではないと思います。

私が思いつくことができる最も近い近似はこれです:

df <- data.frame(expand.grid(1:5,1:5))
df$z <- runif(nrow(df))
df$grp <- rep(letters[1:2],length.out = nrow(df))

ggplot(df,aes(x = Var1,y = Var2,fill = factor(grp),alpha = z)) + 
    geom_tile() + 
    scale_fill_manual(values = c('red','blue'))

ここに画像の説明を入力

しかし、賢明な伝説を手に入れるのは難しいでしょう。

于 2012-04-19T17:35:35.493 に答える