私が例に似た私のggplot、にカスタム凡例を追加しようとしているggplot:http://docs.ggplot2.org/0.9.2.1/scale_gradientn.html追加カスタム伝説
私はプロットのバーはdf$col
列に応じて着色することにしたい、その理由のために私はscale_fill_manual
とvalues = coloursv
を使用しています。
set.seed(1)
df <- data.frame(log10.p.value = -10*log10(runif(10,0,1)), y = letters[1:10], col = rep("#E0E0FF",10), stringsAsFactors = F)
#specify color by log10.p.value
df$col[which(df$log10.p.value > 2)] <- "#EBCCD6"
df$col[which(df$log10.p.value > 4)] <- "#E09898"
df$col[which(df$log10.p.value > 6)] <- "#C74747"
df$col[which(df$log10.p.value > 8)] <- "#B20000"
#truncate bars
df$log10.p.value[which(df$log10.p.value > 10)] <- 10
coloursv <- df$col
names(coloursv) <- df$col
p <- ggplot(df, aes(y=log10.p.value,x=y,fill=as.factor(col)))+
geom_bar(stat="identity",width=0.2) +
scale_y_continuous(limits=c(0,10)) +
theme(axis.text=element_text(size=10)) +
scale_fill_manual(values = coloursv)+coord_flip()+
scale_fill_gradientn(colours=c("#EBCCD6","#E09898","#C74747","#B20000","#E0E0FF"),
breaks=c(-4,-3,-2,-1,0),guide="colorbar",labels=c(2,4,6,8,10))
、何を得ていない:あなたはscale_fill_manual(values = coloursv,guide=F)
を持っているとguide=F
が示されているからフィル伝説を防ぐため
おかげでたくさんのeipi10。私はscale_fill_manualを使って、プロット内のバーの色がdata.frameの値と一致するようにしました。だから、私はどのように伝説の記入に加えてその権利を取得するのですか? – dan
プロット 'p1a'は' scale_fill_manual(values = c( "#E0E0FF"、 "#EBCCD6"、 "#E09898"、 "#C74747"、 "#B20000")) 'に色を設定します。キーは、 'log10.p.value.cat'の対応するカテゴリと同じ順序で色を配置することです。 'log10.p.value.cat'は要素なので、' levels(df $ log10.p.value.cat) 'からカテゴリの順序を取得できます。私はそれに応じて私の答えを更新しました。 – eipi10