Как получить настроенную нелинейную цветную полосу для точечной диаграммы с пакетом R ggplot2? - PullRequest
0 голосов
/ 28 мая 2019

Я хотел бы иметь непрерывную, но нелинейную цветную полосу для моего графика рассеяния (построенного с помощью функции ggplot в R).Значения находятся в диапазоне от 0 до 1, и я хотел бы, чтобы цвета были различимы для значений в интервале [0,0.05], в частности (это означает, что вы можете видеть визуально, что значения различны) (сохраняя также разные цвета для значений вышедо 0.05).

Я уже пытался использовать «trans» в функции «scale_fill_gradientn ()», но так как многие мои значения равны 0, я не могу использовать преобразование «log».Я использовал преобразование "sqrt", но цвета не различали интересующий меня интервал.

Я также пытался создать себе новое преобразование с помощью функции "trans_new", но я продолжаю получать эту ошибку:

Ошибка при получении (as.character (FUN), mode = "function", envir = envir):
объект 'nonlin_trans' режима 'function' не найден

Вот код, который я использую с преобразованием "sqrt":

cont=dataframe$p

cont=factor(cont)

mycolors=tim.colors(length(levels(cont)))

ggplot(dataframe, aes(x=x,y=y,color=p))+geom_point(size=4)+ scale_fill_gradientn(colors=mycolors,trans="sqrt" aesthetics = "colour", breaks=c(0,0.001,0.01,0.02,0.03,0.04,0.05,0.1,0.3,0.5,1), limits=c(0,1), na.value=c('pink'))+ theme_bw() 

Вот код, который я добавил, когда пытался создать себе преобразование:

library(scales)
trans_new(name="nonlin", nonlin_trans,inverse=function(y){exp(y)-0.0000000001} )
nonlin_trans<-function(x){log(x+0.0000000001)}

и затем я использую «nonlin» вместо «sqrt».

Как я могу получить нелинейную цветную полосу, чтобы конкретный интервал имел больше разных цветов, чем остальные?Должен ли я использовать другую функцию plot как ggplot для этого?

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...