gpt4 book ai didi

r - 如何在R中创建具有相同色标的栅格图

转载 作者:行者123 更新时间:2023-12-03 13:29:48 27 4
gpt4 key购买 nike

我正在使用R中的“raster”包从栅格文件创建一些 map 。我想创建比较栅格,并排显示多个 map 。对此很重要,无论所有贴图中的值如何,所有贴图使用的色阶都相同。例如,如果 map 1的值是0-1, map 2的值是0-0.5,则值为0.5的像元在两个 map 上应具有相同的颜色。

例如:

  • 映射1的值从0到1
  • 映射2的值从0到0.5
  • 颜色从红色(最低)变为绿色(最高)

  • 我希望值0.5在两个 map 中具有相同的颜色(即黄色,介于红色和绿色之间)。当前行为是在 map 1中为黄色,在 map 2中为绿色。

    我找不到使这项工作可行的方法。我看不到任何方法来设置要与绘图功能一起使用的像素值范围。 setMinMax()没有帮助(因为“图”总是计算值)。即使尝试手动设置值(例如g1 @ data @ max <-10)也不起作用(绘制时会忽略这些值)。

    最后,堆叠一堆 map (可能希望以相同的色标绘制所有内容)也不起作用-每个图仍然具有自己的色标。

    有关如何执行此操作的任何想法?

    编辑:

    我最终使用的解决方案是:
    plot( d, col=rev( rainbow( 99, start=0,end=1 ) ), breaks=seq(min(minValue( d )),max(maxValue(d)),length.out=100) ) 

    最佳答案

    由于image::raster函数指定可以传递image::base参数(并建议可能使用image::base),因此您是否不应该对所有对image的调用都指定相同的col =和breaks =参数::光栅?您确实需要获得休息时间和col参数“同步”。颜色的数量必须比中断的数量少一种。下面的示例基于经典的火山数据,第二个示例显示了如何从图像中排除一定范围的值:

     x <- 10*(1:nrow(volcano))
    y <- 10*(1:ncol(volcano))
    image(x, y, volcano, col = terrain.colors( length(seq(90, 200, by = 5))-1), axes = FALSE, breaks= seq(90, 200, by = 5) )
    axis(1, at = seq(100, 800, by = 100))
    axis(2, at = seq(100, 600, by = 100))
    box()
    title(main = "Maunga Whau Volcano", font.main = 4)



    x <- 10*(1:nrow(volcano))
    y <- 10*(1:ncol(volcano))
    image(x, y, volcano, col = terrain.colors( length(seq(150, 200, by = 5))-1), axes = FALSE, breaks= seq(150, 200, by = 5) )
    axis(1, at = seq(100, 800, by = 100))
    axis(2, at = seq(100, 600, by = 100))
    box()
    title(main = "Maunga Whau Volcano Restricted to elevations above 150", font.main = 4)

    一个具体的例子将有助于这项工作。

    关于r - 如何在R中创建具有相同色标的栅格图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4316692/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com