私は統計的なテスト(遺伝子セット濃縮分析ですが、それは重要ではありません)に由来するデータを持っていますので、正の値と負の値の両方に正規分布する統計値のp値を取得します。scale_fill_gradient2の凡例を操作する
テストでは、いくつかのカテゴリーに実行されます。
set.seed(1)
df <- data.frame(col = rep(1,7),
category = LETTERS[1:7],
stat.sign = sign(rnorm(7)),
p.value = runif(7, 0, 1),
stringsAsFactors = TRUE)
が、私は彼らのdf$p.value
によってdf$category
を乗じたgeom_tile
ggplot
ようにIカラーコードでこれらのデータを提示したい自分df$stat.sign
(すなわち、の兆候統計)
df$p.value
の
log10
を取ることについては
:
df$sig <- df$stat.sign*(-1*log10(df$p.value))
その後、私はdf$sig:
library(dplyr)
df <- rbind(dplyr::filter(df, sig < 0)[order(dplyr::filter(df, sig < 0)$sig), ],
dplyr::filter(df, sig > 0)[order(dplyr::filter(df, sig > 0)$sig), ])
の各記号のためdf$sig
でdf
をorder
そして、私はそれをggplot
:
library(ggplot2)
df$category <- factor(df$category, levels=df$category)
ggplot(data = df,
aes(x = col, y = category)) +
geom_tile(aes(fill=sig)) +
scale_fill_gradient2(low='darkblue', mid='white', high='darkred') +
theme_minimal() +
xlab("") + ylab("") + labs(fill="-log10(P-Value)") +
theme(axis.text.y = element_text(size=12, face="bold"),
axis.text.x = element_blank())
私に与え
:
はdf$sig
の値はその絶対値で表されているが、他のすべてが変わらないことをlegend
などを操作する方法はありますか?そうすれば、私はまだ赤と青の色合いの両方を取得し、私が望む順序を維持する。