R中的栅格图例:如何为特定值上色?


30

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

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

高程图

其中一些值低于海平面(0),我希望这些值显示为红色。如何在plot()中为特定颜色分配特定范围?

Answers:


33

这是一个非常简单的例子

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年

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

4
我完全同意这一点-许多R包中的示例都很难弄清楚,因为其他对象实在太多了!
Simbamangu 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.