0

我必须在不同时刻在世界地图上绘制一个物理变量。所以我必须制作很多情节,就像我必须绘制多少时刻一样。问题是我的例程默认设置了刻度的结尾,这使得阅读情节变得困难。我想修复刻度的末端,以便为所有地块设置一个刻度。这是一段我会重用的旧代码

  require(reshape)
  require(mapdata)
  require(mapproj)
  df <- read.table('/media/Lacie2/dati/hy.dat',head=F)
  names(df) <- c("value", "x", "y")#, "t")
  dfc <- cast(df[ ,-4], x ~ y)
  mm<-as.matrix(dfc,ncol=480,nrow=241)
  filled.contour(x=seq(0,360,length.out=480),y=seq(-90,90,length.out=241),mm,
  color.palette = colorRampPalette(c("lightblue", "blue","violet", "black")),
  xlab = "Longitude (°)", ylab = "Latitude (°)",
  plot.axes = {axis(1); axis(2);            
  map('world2Hires',
  xlim = c(0, 360), 
  ylim = c(-90, 90), 
  add = T, col = "black")}
 )

我不明白如何修理梯子的末端刻度。我该怎么做?

4

1 回答 1

2

如果您只想绘制最多颜色,那么只需“修剪”value您传递给绘图例程的颜色:

df$trimval <- pmin(df$value, 2)  
 # the range in the example below is roughly -4.5 to 4.5

...并使用该值作为 z 参数绘制到contour.plot. 下面的缩进代码和随机“值”参数:

require(reshape)
  require(mapdata)
  require(mapproj)
  df <- data.frame(value=rnorm( 480*241), x=seq(0,360,length.out=480),y=seq(-90,90,length.out=241) )
df$trimval <- pmin(df$value, 2)

  dfc <- cast(df[-1], x ~ y)
  mm<-as.matrix(dfc,ncol=480,nrow=241)
  filled.contour(x=seq(0,360,length.out=480),y=seq(-90,90,length.out=241),mm,
         color.palette = colorRampPalette(c("lightblue", "blue","violet", "black")),
         xlab = "Longitude (°)", ylab = "Latitude (°)",
         plot.axes = {axis(1); axis(2);            
                      map('world2Hires',
                      xlim = c(0, 360), 
                      ylim = c(-90, 90), 
                      add = T, col = "black")}
                )

因此,颜色范围在 2 处最大化,并且所有高于 2 的值都使用给定为 2 的颜色绘制。(我可能会提到我尝试使用 zlim,但结果并不像我想象的那样。)

于 2012-11-03T18:54:44.450 回答