【问题标题】:How to keep only break in colors to septate values above zero from those below zero?如何只保留颜色以将高于零的值与低于零的值分开?
【发布时间】:2013-12-18 09:53:43
【问题描述】:

我想绘制一个矩阵,但在图例中连续颜色没有中断

       library(colorRamps) 
       library(raster) 
       set.seed(1)
       library(raster)
       r <- raster(nrows=5, ncols=5)
       r <- setValues(r, 1:ncell(r))
      plot(r, col =  matlab.like(8)

这个产品

如您所见,图例中有颜色中断。我想使用相同的颜色但没有中断,但只保留一个中断,将橙色和红色与浅蓝色和蓝色分开,请帮忙(在这个例子中它在 10 到 15 之间)。我的实际值介于 -1 和 +1 之间,因此我想将休息时间设为零。高于零橙色,红色等。低于零浅蓝色,蓝色等。谢谢

【问题讨论】:

  • 您能再详细说明一下吗?当您远离休息区时,您想要蓝色和红色逐渐变暗吗?类似的东西?

标签: r plot raster


【解决方案1】:

这听起来像是想要混合连续和离散尺度,例如,有一个离散尺度嵌入两个连续尺度。我不知道在 R 中执行此操作的方法。但是只需将最后一行代码更改为

plot(r, col =  matlab.like(25)

创造出非常接近的东西:

使用ggplot,您可以更灵活地定义尺度,但仍不能将离散和连续结合起来。

library(ggplot2)
library(colorRamps)

x    <- seq(-1,1,len=5)
y    <- seq(-1,1,len=5)
gg   <- expand.grid(x=x,y=-y)
gg$z <- seq(-1,1,len=25)
ggplot(gg) + 
  geom_raster(aes(x=x,y=y,fill=z))+
  scale_fill_gradientn(colours=matlab.like(25), breaks=c(-1,0,1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2021-09-11
    • 2015-12-02
    • 2014-06-12
    • 2020-08-08
    • 1970-01-01
    相关资源
    最近更新 更多