为什么当我们使用rev来反转传说的颜色时,我们会得到一些不同的东西?

为什么当我们使用rev来反转传说的颜色时,我们会得到一些不同的东西?,r,plot,raster,R,Plot,Raster,我正在尝试打印此光栅文件的图像。图例的颜色如下:低值为红色,高值为绿色 但通常红色与高值相关。这就是为什么我用rev来反转传说的颜色。但是我得到了一些不同的东西。是否有另一个功能来反转图例的颜色并保持颜色不变 require(raster) require(fields) r = raster(y) extent(r) = extent(c(xmn=-180,xmx=180,ymn=-90,ymx=90)) plot(r, col = rainbow(20, s = 1, v = 1, star

我正在尝试打印此光栅文件的图像。图例的颜色如下:低值为红色,高值为绿色

但通常红色与高值相关。这就是为什么我用rev来反转传说的颜色。但是我得到了一些不同的东西。是否有另一个功能来反转图例的颜色并保持颜色不变

require(raster)
require(fields)
r = raster(y)
extent(r) = extent(c(xmn=-180,xmx=180,ymn=-90,ymx=90))
plot(r, col = rainbow(20, s = 1, v = 1, start = 0, 
     end = 1),lab.breaks=seq(0,0.6,0.05),
     breaks=seq(0,0.6,0.05), zlim=c(0.0,0.6),horizontal = TRUE, 
     xlab="Longitude", ylab="Latitude",legend.shrink = 0.9,
     legend.width = 1.2)
然后我用这个给了我:

plot(r, col = rev(rainbow(20, s = 1, v = 1, start = 0, end = 1)),
     lab.breaks=seq(0,0.6,0.05),breaks=seq(0,0.6,0.05),
     zlim=c(0.0,0.6),horizontal = TRUE, xlab="Longitude", 
     ylab="Latitude",legend.shrink = 0.9,legend.width = 1.2)

显然你没有检查颜色

> length(rainbow(20, s = 1, v = 1, start = 0, end = 1))
[1] 20
但并非所有20个都使用,您只使用其中12个,因此:

plot(r, col = rev(rainbow(20, s = 1, v = 1, start = 0, end = 1)[1:12]),
     lab.breaks=seq(0,0.6,0.05),breaks=seq(0,0.6,0.05),
     zlim=c(0.0,0.6),horizontal = TRUE, xlab="Longitude", 
     ylab="Latitude",legend.shrink = 0.9,legend.width = 1.2)
应该给你想要的情节。毕竟,有13个打断值,所以只有12个类别。这意味着你本可以做到:

plot(r, col = rev(rainbow(12, s = 1, v = 1, start = 0, end = 1)),
     lab.breaks=seq(0,0.6,0.05),breaks=seq(0,0.6,0.05),
     zlim=c(0.0,0.6),horizontal = TRUE, xlab="Longitude", 
     ylab="Latitude",legend.shrink = 0.9,legend.width = 1.2)

显然你没有检查颜色

> length(rainbow(20, s = 1, v = 1, start = 0, end = 1))
[1] 20
但并非所有20个都使用,您只使用其中12个,因此:

plot(r, col = rev(rainbow(20, s = 1, v = 1, start = 0, end = 1)[1:12]),
     lab.breaks=seq(0,0.6,0.05),breaks=seq(0,0.6,0.05),
     zlim=c(0.0,0.6),horizontal = TRUE, xlab="Longitude", 
     ylab="Latitude",legend.shrink = 0.9,legend.width = 1.2)
应该给你想要的情节。毕竟,有13个打断值,所以只有12个类别。这意味着你本可以做到:

plot(r, col = rev(rainbow(12, s = 1, v = 1, start = 0, end = 1)),
     lab.breaks=seq(0,0.6,0.05),breaks=seq(0,0.6,0.05),
     zlim=c(0.0,0.6),horizontal = TRUE, xlab="Longitude", 
     ylab="Latitude",legend.shrink = 0.9,legend.width = 1.2)