【发布时间】:2016-02-18 08:20:50
【问题描述】:
我有两个要映射的数据框。 dfs 具有相同的 xy 坐标,我需要一个 single colorbar 和一个可见的 discrete color scale 用于两个 dfs,就像这里显示的那样。我希望颜色键中的颜色与自定义中断相匹配。非常感谢可以在此示例之外应用的更通用的解决方案
RcolorBrewer 包中的 RdYIBu 调色板是我所追求的。
到目前为止我的代码:
library(rasterVis)
ras1 <- raster(nrow=10,ncol=10)
set.seed(1)
ras1[] <- rchisq(df=10,n=10*10)
ras2=ras1*(-1)/2
s <- stack(ras1,ras2)
Uniques <- cellStats(s,stat=unique)
Uniques.max <- max(Uniques)
Uniques.min <- min(Uniques)
my.at <- round(seq(ceiling(Uniques.max), floor(Uniques.min), length.out= 10),0)
myColorkey <- list(at=my.at, labels=list(at=my.at))
levelplot(s, at=my.at, colorkey=myColorkey,par.settings=RdBuTheme())
如何设置颜色键中的值以匹配地图上的值,如上面的示例地图所示?请注意,颜色键中的颜色数量应与地图上显示的数量相同。
非常感谢您的帮助。您的建议将帮助我开发许多这样的地图。
谢谢。
【问题讨论】:
-
@OscarPerpiñán 来自常见问题解答
ras1 <- raster(nrow=10,ncol=10) set.seed(1) ras1[] <- rchisq(df=10,n=10*10) ras2=ras1*(-1)/2 s <- stack(ras1,ras2) Uniques <- cellStats(s,stat=unique) Uniques.max <- max(Uniques),Uniques.min <- min(Uniques) my.at <- round(seq(ceiling(Uniques.max), floor(Uniques.min), length.out= 10),0); myColorkey <- list(at=my.at, labels=list(at=my.at)) levelplot(s, at=my.at, colorkey=myColorkey,par.settings=RdBuTheme()),但您可以看到 0 不是我上面显示的示例地图所示的位置。我该如何解决这个问题?非常感谢。 -
在 cmets 中,您可以在语句之间使用分号 (
;),以便您的代码可以运行。 -
@RobertH 感谢您的有用编辑。这个问题的一些答案可以在这里找到 [stackoverflow.com/questions/33750235/…
-
ggplot2 更适合这个(使用 facet_wrap 或 facet_grid),有兴趣吗?
标签: r colors maps raster levelplot