【发布时间】:2014-08-13 07:47:36
【问题描述】:
我非常喜欢 ggplot2 的外观和感觉,并经常使用它们来显示栅格数据(例如,对随时间变化的降水场的时间步长进行分面非常有用)。
但是,我仍然想知道是否可以轻松将连续栅格值分箱到离散箱中并为每个箱分配一种颜色,如图例所示(与许多 GIS系统会)。
我尝试使用scale_fill_gradient 选项的guide = "legend" 和breaks 参数。然而,这些仅影响图表一侧的图例,但绘制的值仍然是连续的。
library(ggplot2)
data <- data.frame(x=rep(seq(1:10),times = 10), y=rep(seq(1:10),each = 10), value = runif(100,-10,10))
ggplot(data = data, aes(x=x,y=y)) +
geom_raster(aes(fill = value)) +
coord_equal() +
scale_fill_gradient2(low = "darkred", mid = "white", high = "midnightblue",
guide = "legend", breaks = c(-8,-4,0,4,8))
我的问题主要是如何将ggplot中绘制的数据离散化,以便图表的读者可以对颜色所代表的值做出定量的结论。
其次,我怎样才能仍然使用以零或其他特定值为中心的发散调色板(类似于scale_fill_gradient2)?
【问题讨论】:
-
另一种方法可能是使用来自
rasterVis包的levelplot。