私は約1年前にこの問題を再訪しています。私は、私の 'colourbar'ガイドを効果的に対数尺度で表示して、それを見てもらうと、ますます濃い青の値がより大きな意味を反映するようにしたいと思います。geom_tileのカラーバーガイドのサイズを変更/手動で入力し、Y軸ラベルを置き換えます。
:私は "colourbar" とは対照的に、 "伝説" として表示することができ、
pz <- ggplot(dat.m, aes(x=variable,y=Category)) +
geom_tile(aes(fill=value)) +
xlab(NULL) + ylab(NULL) +
scale_fill_gradientn(colours=c("#000066","#0000FF","#DDDDDD","white"),
values=c(0,0.05,0.050000000000001,1.0),
breaks=c(0, 0.000001, 0.01, 0.05, 1),
guide = "colourbar") +
theme_bw()+
theme(panel.background = element_blank(),
panel.border = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank()) +
theme(legend.position="top",
legend.text = element_text(angle=45),
axis.text.x = element_text(angle=45)
)
または:次のコードで
、私は下の画像を生成します
私が本当に望むのは、このようなものです。
私は(scale_fill_gradientn(=トランス)「ログイン」)「=トランス 『ログイン』」を追加しようとしているが、問題が発生する私のデータにゼロがたくさんあります。アイデアがあれば、大変感謝しています!
前の文言:
私は様々な分類のための異なるサンプルのためのp値のヒートマップを作成しようとしています。私はこのプロットに変更したい二つのことがあります。
私はまだ勾配の完全なスペクトルを維持しながら、伝説のスケールの下端を強調するために、私の
geom_tile
プロットの凡例を調整したいと思います - それが対数スケールであるかどうかを調べる方法に似ています。したがって、本質的に1.0から0.05の白から青への移行と、0.05から0.00の青から暗青への移行はほぼ同じ大きさになります。カラーバーガイドを手動で調整できる方法はありますか?「空の」行ラベルを削除できるように、y軸の名前を置き換えたいと思います。カテゴリはここでは文字で表されていますが、実際のデータセットでは長い名前です。私はデータを分割してチャックに分割し、各ブロック内のタイルを最も重要なものから重要でないものにするようにデータの「ダミー」行を挿入しました。これにはよりよい解決策があると確信していますが、私はスタックオーバーフローで見つけた他のアイデアの試みに失敗しました!私は
scale_y_discrete
とラベル付けしようとしましたが、これは上記の順序で混乱します。
これらのいずれかの問題のヘルプは大歓迎です!ここで
サンプルデータセットです:
dput(dat.m)
structure(list(Category = structure(c(12L, 11L, 10L, 9L, 8L,
7L, 6L, 5L, 4L, 3L, 2L, 1L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L,
4L, 3L, 2L, 1L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L,
1L), class = "factor", .Label = c("j", "i", "empty2", "h", "empty1",
"g", "f", "e", "d", "c", "b", "a")), variable = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L), .Label = c("b2", "c1", "c2"), class = "factor"),
value = c(7.40214650772221e-06, 0.0075828339, 0.1825924627,
0.0384381317, 0.0440256659, 0.3659284985, 0.9777569144, 1,
0.0075828339, 1, 0.2193606406, 0.3659284985, 0.0004289756,
0.0011541045, 0.0004289756, 0.4400885491, 0.6121402215, 0.6724032426,
0.2735924085, 1, 0.018824582, 1, 0.4386503891, 0.4249526456,
1.05094571578633e-05, 0.0027216795, 0.715979827, 0.0050376405,
0.7473334763, 0.9053300832, 1, 1, 0.0015392848, 1, 0.039679469,
0.0950327519)), .Names = c("Category", "variable", "value"
), row.names = c(NA, -36L), class = "data.frame")
そしてここでは私のコードです:
col_blue <- c("#FFFFFF","#000099","#000066","#000033")
ggplot(dat.m, aes(x=variable,y=Category)) +
geom_tile(aes(fill=value)) +
xlab(NULL) + ylab(NULL) +
scale_fill_gradientn(colours=col_blue, values=c(1,0.05,0.01,0),guide="colorbar") +
theme_mary(base_size=12)
UPDATE:
だから今、私はトンを変更しました彼はそのように以下の結果をコードします。私は達成しようとしているものに近づいていますが、カラーバーの割合を0.05〜0.0の勾配で表示したいと思っています。 (1)
ため
col_blue <- c("#FFFFFF","#000099","#000066","#000033")
ggplot(dat.m, aes(x=variable,y=Category)) +
geom_tile(aes(fill=value)) +
xlab(NULL) + ylab(NULL) +
scale_fill_gradientn(colours=col_blue, values=c(1,0.05,0.01,0), guide=FALSE) +
scale_colour_gradientn(guide = "colourbar", limits = c(0,1),breaks=c(1,0.05,0.01,0),values=c(1,0.05,0.01,0),colours=c("#FFFFFF","#000099","#000066","#000033"))
「theme_mary」はどこから来たのですか? –
これは古いコメントですが、ここで質問を更新したので、答えは - theme_maryは私が以前作成したカスタムテーマでした。私は更新されたコードから削除しました。混乱して申し訳ありません! – ONeillMB1