Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用levelplot在R中显示负/正数据_R_Data Visualization_Levelplot - Fatal编程技术网

使用levelplot在R中显示负/正数据

使用levelplot在R中显示负/正数据,r,data-visualization,levelplot,R,Data Visualization,Levelplot,我需要您对如何可视化/映射跨越正负值的数据的见解。我有6个光栅,它们被叠加在一起,随后将通过R中的levelplot函数进行绘制。下面是每个光栅的最大值和最小值 目前,我可以通过以下方式制作地图: library(raster) library(rasterVis) library(colorRamp) s <- stack(r1,r2,r3,r4,r5,r6) themes2 <- colorRampPalette(c("darkred", "red3", "ora

我需要您对如何可视化/映射跨越正负值的数据的见解。我有6个光栅,它们被叠加在一起,随后将通过R中的levelplot函数进行绘制。下面是每个光栅的最大值和最小值

目前,我可以通过以下方式制作地图:

library(raster)
library(rasterVis)
library(colorRamp)
    s <- stack(r1,r2,r3,r4,r5,r6)
    themes2 <- colorRampPalette(c("darkred", "red3", "orange", "yellow", "lightskyblue", "royalblue3", "darkblue"))(19)
    myat =unique(seq(floor(min(s)) ,ceiling(max(s)),length.out=20))
    myat=round(myat,digits = 0)#     
    #themes <- rasterTheme(region=rev(brewer.pal(11,'RdYlBu')))
    myColorkey <- list(at=myat,space = "right",labels=list(cex=1,at=myat))

    if (dev.cur() == 1) x11(width=18,height=18)

    levelplot(s, layout=c(3, 2), index.cond=list(c(1, 3, 5, 2, 4, 6)),col.regions=themes2,  
              margin=FALSE,xlab=NULL,at =unique(seq(floor(min(s)) ,ceiling(max(s)),length.out=20)),
              par.strip.text=list(cex=0),colorkey=myColorkey,scales=list(alternating=F))
注意:我需要一个所有光栅共用的颜色键

问题:对于范围较小的光栅,单元之间的变化传递不好-地图上的信息没有很好地可视化。我如何在如此大的总体范围内使用levelplot可视化此类数据

您可以生成6个光栅,其值在上面显示的范围内,以提供进一步的线索

谢谢你的帮助! colorkey不需要从红色变为蓝色。像这样的事情就行了


我需要一个单一的,所有这些光栅共享的颜色关键点。目前,单元范围较小的光栅显示的变化非常小。

在我看来,您有两种选择:

对每个图形使用不同的键。 重新缩放数据以创建公共比例。
因为需要一个颜色键,所以应该重新缩放数据。虽然是关于时间序列的,但它对这个问题给出了很好的建议。

六个光栅是代表同一个变量,还是代表六个不同的变量?@Pascal它们代表同一个变量。假设您有一个站点的温度数据,并且希望在不同的场景和未来的时间窗口中比较这些数据。这样的比较需要一个颜色键。正如上面所解释的,这就是我试图解决的问题。从你的帖子上看不清楚。在这种情况下,你可以按照奥斯卡的建议去做。这意味着什么:具有较小值和较大值的光栅会被抑制?你的意思是,对于范围相对较小的光栅,单元值的变化很难看到,因为渐变的这一小部分的颜色非常相似吗?@jbaums,没错!与范围较小的光栅不同,范围较大的光栅显示的变化较大。颜色变化不大。我上传了一张示例地图来说明。。。
library(raster)
library(rasterVis)
library(colorRamp)
    s <- stack(r1,r2,r3,r4,r5,r6)
    themes2 <- colorRampPalette(c("darkred", "red3", "orange", "yellow", "lightskyblue", "royalblue3", "darkblue"))(19)
    myat =unique(seq(floor(min(s)) ,ceiling(max(s)),length.out=20))
    myat=round(myat,digits = 0)#     
    #themes <- rasterTheme(region=rev(brewer.pal(11,'RdYlBu')))
    myColorkey <- list(at=myat,space = "right",labels=list(cex=1,at=myat))

    if (dev.cur() == 1) x11(width=18,height=18)

    levelplot(s, layout=c(3, 2), index.cond=list(c(1, 3, 5, 2, 4, 6)),col.regions=themes2,  
              margin=FALSE,xlab=NULL,at =unique(seq(floor(min(s)) ,ceiling(max(s)),length.out=20)),
              par.strip.text=list(cex=0),colorkey=myColorkey,scales=list(alternating=F))