У меня проблемы с несколькими выбросами, делающими цветовую шкалу бесполезной.
Мои данные имеют переменную длины, которая основана на диапазоне, но обычно будет иметь несколько гораздо больших значений.Приведенные ниже примерные данные имеют 95 значений от 500 до 1500 и 5 значений более 50000.Получающиеся цветные легенды имеют тенденцию использовать 10k, 20k, ... 70k для изменения цвета, когда я хочу видеть изменения цвета между 500 и 1500. Действительно, все, что больше 1300, должно быть одного и того же сплошного цвета (вероятно, медиана +/- без), но я не знаю, где это определить.
Я открыт для любого решения ggplot, но в идеале более низкие значения должны быть красным, средним белым и более высоким синим (низкий - плохо).В моем собственном наборе данных date является фактической датой с as.POSIXct () в ggplot aes (), но, похоже, не влияет на пример.
#example data
date <- sample(x=1:10,size=100,replace=T)
stateabbr <- sample(x=1:50,size=100,replace=T)
Length <- c(sample(x=500:1500,size=95,replace=T),60000,55000,70000,50000,65000)
x <- data.frame(date=date,stateabbr=stateabbr,Length=Length)
#main plot
(g <- ggplot(data=x,aes(x=date,y=factor(stateabbr))) +
geom_point(aes(color=as.numeric(as.character(Length))),alpha=3/4,size=4) +
#scale_x_datetime(labels=date_format("%m/%d")) +
opts(title="Date and State") + xlab("Date") + ylab("State"))
#problem
g + scale_color_gradient2("Length",midpoint=median(x$Length))
Добавление trans = "log" или "sqrt "тоже не совсем справляется.
Спасибо за вашу помощь!