我在R中绘制了一个高程模型

r <- raster("example.dem")
plot(r, col = topo.colors(20))




有些值低于海平面(0),我会喜欢将这些显示为红色。如何在plot()中为特定颜色分配特定范围?

#1 楼

这是一个非常简单的示例

library(raster)
data(volcano)
volcanoR <- raster(volcano)

#making colors below 100 red and above 180 blue in this example

breakpoints <- c(94,100,120,140,160,180,195)
colors <- c("red","white","white","white","white","blue")
plot(volcanoR,breaks=breakpoints,col=colors)




您只需将绘图的断点矢量和颜色矢量传递给匹配断点。请查看RColorbrewer软件包,以获取一些非常好的内置色带。还要签出classInt软件包以制作断点。

评论


太好了-尴尬我花了多长时间。是否有一种直接的方法可以从啤酒酿造厂导入色带?编辑:对不起,我现在看到您指的是一个软件包,而不是网站!

–Simbamangu
2011年11月29日13:25



@Simbamangu,我们都去过那里。我实际上找到了许多执行此操作的示例,这些示例通过使用从其他程序包(例如我建议的程序包)创建的对象来混淆实际上作为断点和颜色传递的内容。我认为最简单的方式是看到它,然后继续使用其他程序包创建适当的断点和色带,而无需做太多工作。

– Andy W
11年11月29日在13:28

我完全同意这一点-许多R包中的示例真的很难弄清楚,因为其他对象的内容太多了!

–Simbamangu
2011年11月30日下午6:39