我非常喜欢它的外观和感觉,ggplot2并经常使用它们来显示栅格数据(例如,时变降水场的时间步长分面是非常有用的).
但是,我仍然想知道是否可以轻松地将连续的栅格值分成不连续的区域,并为每个区域分配一种颜色,如图例所示(许多GIS系统都这样做).
我尝试了选项的参数guide = "legend"和breaks参数scale_fill_gradient.但是,这些仅影响图表侧面的图例,但绘制的值仍然是连续的.
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))
Run Code Online (Sandbox Code Playgroud)
我的问题主要是如何对绘制的数据进行离散化ggplot,以便图表的读者可以对颜色所代表的值进行定量结论.
其次,我怎样才能使用scale_fill_gradient2以零或其他特定值为中心的发散调色板(类似于)?