Costumo trabalhar com ggplot2
isso torna os gradientes legais ( clique aqui para ver um exemplo ). Eu tenho uma necessidade de trabalhar na base e acho que scales
pode ser usado lá para criar gradientes de cor também, mas estou seriamente errado sobre como. O objetivo básico é gerar uma paleta de n cores que variam de x cores a y cores. A solução precisa funcionar na base. Este foi um ponto de partida, mas não há lugar para inserir um n.
scale_colour_gradientn(colours=c("red", "blue"))
Estou bem ciente de:
brewer.pal(8, "Spectral")
de RColorBrewer
. Estou procurando mais uma abordagem semelhante à forma como ggplot2
lida com gradientes que diz que tenho essas duas cores e quero 15 cores ao longo do caminho. Como eu posso fazer isso?
base
especificamente, mas achocolourvalues
( também no CRAN ) particularmente conveniente para mapear valores para um gradiente. Também é muito leve (dependeRcpp
).Respostas:
colorRampPalette
poderia ser seu amigo aqui:E só para mostrar que funciona:
fonte
brewer.pal(8, "Spectral")
, você pode fornecer o vetor de cores resultantecolorRampPalette
para gerar mais cores ao longo dessa rampa. Por exemplo:colorRampPalette(brewer.pal(8, "Spectral"))
.Apenas para expandir a resposta anterior
colorRampPalette
pode lidar com mais de duas cores.Portanto, para uma aparência do tipo "mapa de calor" mais expandida, você pode ...
A imagem resultante:
fonte
Experimente o seguinte:
fonte
A resposta acima é útil, mas em gráficos é difícil distinguir entre gradientes mais escuros de preto. Uma alternativa que encontrei é usar gradientes de cores cinza como segue
Mais informações sobre a escala de cinza aqui.
Adicionado
Quando usei o código acima para cores diferentes como azul e preto, os gradientes não eram tão claros.
heat.colors()
parece mais útil.Este documento contém informações e opções mais detalhadas. pdf
fonte