2セットのデータがあり、viridisカラースケールのヒートマップを使用して提示したいと思います。最初のデータセットの場合、値の範囲は0〜1.2であり、見たい違いを簡単に確認できます。ただし、2番目のデータセットにはいくつかの外れ値があり、0から2の範囲になります。0と1の間の興味深い範囲の違いを確認するのが難しくなり、2つの画像を直接比較するのが難しくなりました。黄色(ビリディススケールの「最高」の色)でより高い値を表示しながら、ビリディスカラースケールを使用して0から1.2までのデータを表示する可能性はありますか?次に例を示します。
library(viridis)
#Create Data
DataSet1 <- expand.grid(x = 0:5, y = 0:5)
DataSet1$z <- runif(36, 0, 1.2)
DataSet2 <- expand.grid(x = 0:5, y = 0:5)
DataSet2$z <- runif(36, 0, 2)
#Plot Data
ggplot(DataSet1, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_viridis() +
geom_text(aes(label = round(z, 2)), size = 2)
DataSet1:0.5と0.7の違いは簡単にわかります
ggplot(DataSet2, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_viridis() +
geom_text(aes(label = round(z, 2)), size = 2)
DataSet2:0.5と0.7の違いを確認するのは困難です
任意の再スケーリング関数を定義できます。これが見栄えがよいかどうかはわかりませんが、凡例を使用して作業する必要がありますが、原則として、このメカニズムを使用すると、データ値を任意の方法でスケールにマッピングできます。
ggplot(DataSet2, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_viridis(rescaler = function(x, to = c(0, 1), from = NULL) {
ifelse(x<1.2,
scales::rescale(x,
to = to,
from = c(min(x, na.rm = TRUE), 1.2)),
1)}) +
geom_text(aes(label = round(z, 2)), size = 2)
このようなものをお探しですか?
ggplot(DataSet2, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_gradient(low="green", high="red", limits=c(0, 1.2),
na.value = "yellow") +
geom_text(aes(label = round(z, 2)), size = 2)
viridisの色を使用して、ジャズーロの推奨事項に従ってください。
ggplot(DataSet2, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_gradientn(colors = viridis_pal()(9), limits=c(0, 1.2),
na.value = "#FDE725FF") +
geom_text(aes(label = round(z, 2)), size = 2)
これは必ずしも改善ではありませんが、次のようにして、より高い値を黄色で表示することができます。
DataSet2A <- DataSet2 %>% filter(z <= 1.2)
DataSet2B <- DataSet2 %>% filter(z > 1.2)
ggplot(DataSet2A, aes(x, y, fill = z)) +
geom_tile() +
scale_fill_viridis(begin = 0, end = .75) +
geom_text(aes(label = round(z, 2)), size = 2) +
geom_tile(data = DataSet2B, aes(x, y), fill = "yellow")
おそらく、使用しているviridis
スケールの部分を制御する、スケールのbegin=
パラメーターとend=
パラメーターだけでなく、カットオフを試してみると、達成できます。あなたが望む結果。 (プロットごとに1つの塗りつぶしスケールしか設定できないことに注意してください。ただし、ここで黄色を使用して行ったように、追加の定数塗りつぶしを設定できます。)