私はggplot
に勾配の色付けスキームを使用したいデータがあり、それからいくつかのポイントに注釈を付けます。geom_pointにgeom_text_repelレイヤーをscale_colour_gradient2で塗りつぶしてください
マイデータ:
ここdf <- data.frame(id = rep(LETTERS,100),
val1 = rnorm(100*length(LETTERS)), val2 = rnorm(100*length(LETTERS)),
sig = runif(100*length(LETTERS),0,1),
col = NA,stringsAsFactors = F)
私は注釈を付け、それらに色を与えるしたいのですがいくつかのポイントを選択:
df$col[sample(nrow(df), 10, replace = F)] <- rainbow(10)
をそしてここで私がしようとしているggplot
コードです:
library(ggplot2)
library(ggrepel)
ggplot(df,aes(x=val1,y=val2,color=col))+
geom_point(aes(color=sig),cex=2)+scale_colour_gradient2("Significance",low="darkred",mid="darkblue",high="darkred")+
geom_text_repel(data=dplyr::filter(df,!is.na(col)),aes(x=dplyr::filter(df,!is.na(col))$val1,y=dplyr::filter(df,!is.na(col))$val2,label=dplyr::filter(df,!is.na(col))$id,colour=dplyr::filter(df,!is.na(col))$col))+
theme_minimal()+theme(legend.position="none")
このエラーをスローする:
Error: Discrete value supplied to continuous scale
任意のアイデア?
おかげでたくさんの@missuse。配色を離散化することが唯一の解決策だと思いますか? – dan
@ダン、別の解決策を追加しました。編集を確認 – missuse