Как я могу установить col = используя «viridis» в опции «plot» в R, где отрицательные значения до нуля являются горячими цветами, а положительные значения - холодными цветами? - PullRequest
0 голосов
/ 29 октября 2019

Мне нужно создать карту климатической аномалии в R. Вот сделка:

1 - у меня есть отрицательные и положительные значения (от -300 до 100);2 - со свободным выбором цветов с использованием «пакета viridis» и его 255 возможных цветов (я использую опцию «E»), я уже получил хорошую карту, но это не совсем то, что я хочу;3 - Я хочу создать случайный «горячий - желтый» поддон viridis от -300 до 0, в то время как от 0 до остальных положительных значений - новый случайный холодный поддон viridis от +1 до +100 (от белого поддона до темно-синего);

Я ожидаю карту, на которой я все еще использую свою палету viridis со случайными значениями, однако, от отрицательных чисел моей карты до нуля, я хочу случайный выбор «горячего» градиента цвета viridis (я делаюкарта аномалий осадков), и от нуля до остальных моих положительных значений, я хочу градиент холодных цветов (то есть от белого до темно-синего цвета). До сих пор я получил два вывода: карту с градиентом всех цветов viridis (255) или карту категории только с определенным количеством цветов.

Я пытался определить особенности "breaks", axis.arg,Злим, определил ярлыки и т. д. и т. д., но у меня не было успеха.

Первый рабочий код:

par(mfrow=c(1,2))

par(cex=1.2,mar=c(0,0,4,0))
plot(bio12.region,col=viridis_pal(option ="E",direction=-1)(255),
     axes=FALSE,box=FALSE,legend=T, horizontal=T,
     main="Annual Precipitation (mm.y-1)")

Второй, что я получил (пока работаю):

breakpoints <- c(-300,-200,-100,0,100)
colors <- c(col=viridis_pal(option ="E",direction = -1)(5))
a.arg <- list(at=seq(-300,100,length.out=5),
labels=c("-300","-200","-100","0","100"))

par(cex=1.2,mar=c(0,0,4,0))
plot(mymap,col=colors,breaks=breakpoints, axis.arg=a.arg, 
zlim=c(-300,100), axes=FALSE,box=FALSE,legend=T, 
     main="mytitle",horizontal=TRUE)
...