Я пытаюсь построить некоторые глобальные карты (растровые файлы), и у меня есть некоторые проблемы с настройкой хорошей цветовой шкалы для моих данных. Что я хотел бы сделать, так это построить свои данные с использованием расходящейся палитры (например, cm.colors
), и я хотел бы центрировать «белый» цвет такой шкалы с нулевым значением, но без необходимости устанавливать симметричные значения в шкале ( т.е. одинаковое значение как отрицательное, так и положительное, т.е. limits=c(-1,1)
). Кроме того, я хотел бы отображать все значения выше и/или ниже определенного значения с одним и тем же цветом.
Другими словами, если мы предположим, что моя карта имеет диапазон от -100 до 150, я хотел бы построить свою карту с расходящейся палитрой с «белым» цветом, соответствующим значению 0, и имеющим все значения, например. ниже -20 и выше 50 нанесены одним и тем же цветом, т.е. соответственно с отрицательными и положительными крайними значениями цветовой палитры.
Вот пример кода, который я использую на данный момент:
ggplot(df, aes(y=Latitude, x=Longitude)) +
geom_raster(aes(fill=MAP)) +
coord_equal()+
theme_gray() +
theme(panel.background = element_rect(fill = 'skyblue2', colour = 'black'),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = "right",
legend.key = element_blank()) +
scale_fill_gradientn("MAP", limits=c(-0.5,1), colours=cm.colors(20))