0

さまざまな瞬間に世界地図上に物理変数をプロットする必要があります。だから私は私がプロットしなければならない瞬間の数と同じくらい多くのプロットをしなければなりません。問題は、私のルーチンがデフォルトでスケールの終わりを設定していることです。これにより、プロットの読み取りが困難になります。すべてのプロットに1つのスケールを設定するために、スケールの終わりを修正したいと思います。これは私が再利用する古いコードの一部です

  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 に答える