Цветовая шкала ggplot2 перегружена выбросами

У меня возникли трудности с несколькими выбросами, делающими цветовую шкалу бесполезной.

В моих данных есть переменная длины, основанная на диапазоне, но обычно имеющая несколько гораздо больших значений. Данные в приведенном ниже примере содержат 95 значений от 500 до 1500 и 5 значений более 50 000. Результирующие цветовые легенды имеют тенденцию использовать 10k, 20k, ... 70k для изменения цвета, когда я хочу увидеть изменения цвета между 500 и 1500. Действительно, все, что выше 1300, должно быть одним и тем же сплошным цветом (вероятно, медиана +/- безумие). ), но я не знаю, где это определить.

Я открыт для любого решения ggplot, но в идеале более низкие значения были бы красными, средние белыми и более высокими синими (низкое — плохо). В моем собственном наборе данных дата является фактической датой с 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" тоже не помогает.

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

11
задан ARobertson 21 March 2012 в 20:13
поделиться