Często pracuję z ggplot2
tym, że gradienty są ładne ( kliknij tutaj, aby zobaczyć przykład ). Muszę pracować w bazie i myślę, że scales
mogę tam również tworzyć gradienty kolorów, ale bardzo nie wiem, jak. Podstawowym celem jest wygenerowanie palety n kolorów w zakresie od koloru x do koloru y. Rozwiązanie musi jednak działać w bazie. To był punkt wyjścia, ale nie ma miejsca na wprowadzenie n.
scale_colour_gradientn(colours=c("red", "blue"))
Doskonale zdaję sobie sprawę z:
brewer.pal(8, "Spectral")
od RColorBrewer
. Szukam bardziej podejścia podobnego do tego, jak ggplot2
obsługuje gradienty, które mówi, że mam te dwa kolory i chcę po drodze 15 kolorów. Jak mogę to zrobić?
base
specjalnie o to prosiłeś , ale uważamcolourvalues
( również w CRAN ) za szczególnie wygodne do mapowania wartości na gradient. Jest również dość lekki (w zależności odRcpp
).Odpowiedzi:
colorRampPalette
może być twoim przyjacielem tutaj:I żeby pokazać, że to działa:
źródło
brewer.pal(8, "Spectral")
Możesz dać wynikowy wektor kolorów,colorRampPalette
aby wygenerować więcej kolorów wzdłuż tej rampy. Na przykład:colorRampPalette(brewer.pal(8, "Spectral"))
.Aby rozwinąć poprzednią odpowiedź,
colorRampPalette
można obsłużyć więcej niż dwa kolory.Aby uzyskać bardziej rozszerzony wygląd typu „mapa cieplna”, możesz ....
Powstały obraz:
źródło
Spróbuj wykonać następujące czynności:
źródło
Powyższa odpowiedź jest przydatna, ale na wykresach trudno jest odróżnić ciemniejsze gradienty czerni. Jedną z alternatyw, które znalazłem, jest użycie gradientów szarości w następujący sposób
Więcej informacji na temat skali szarości tutaj.
Dodany
Kiedy użyłem powyższego kodu dla różnych kolorów, takich jak niebieski i czarny, gradienty nie były tak wyraźne.
heat.colors()
wydaje się bardziej przydatne.Ten dokument zawiera bardziej szczegółowe informacje i opcje. pdf
źródło