2

プロットのRは初めてで、いくつかのファイルの等高線プロットを実行したいと思います。これが私がこれまでに得たものです。私のファイルには、X、Y、Zの3つの列があり、いくつかのnan値があります。ラティスではInf/NaN値が許可されていないため、事前にそれらを削除して、補間を行う必要がありました。

data <- read.table("file", sep=",", header=T)
mydata <- na.omit(data)
library(akima)
library(lattice)
s = interp(mydata$X, mydata$Y, mydata$Z)
filled.contour(s, xlim= c(5,25), ylim=c(40,180))

これはいくつかの結果をもたらしますが、私ができないことがあります:

  1. グラフの等高線を取得します。
  2. また、z範囲が異なる3つのファイル、たとえば(0-18)、(0-20)、(0-25)のファイルがあります。グラフ上で同様のカラースケールを提供するように調整および再スケーリングしたいと思います。たとえば、「15」の値は3つすべてで同様のカラーである必要があります。

私はgnuplotに精通していますが、範囲は常に色に合わせて自動スケーリングされるため、範囲にも問題があり、範囲を制御するのは難しいようです。それに関するどんな助けも深く感謝されます。
私は何か間違ったことをしているかもしれないので、誰かが私を助けて、正しい方向、または正しいソフトウェアを提供することができれば、私は感謝します。

4

1 に答える 1

0

gnuplot で輪郭を作成する方法のデモがここにあります。等高線図を作成するコードがあるのに、それが機能しないという意味で問題がありますか?

2番目の質問に答えるために、gnuplotでおそらく必要なコマンドは

set cbrange [CB_MIN:CB_MAX]

これにより、現在のパレットに従って色付けされる値の範囲が設定されます。set cbrange作成している 3 つのプロットすべてに対して同じコマンドを発行するだけで済みます。すべてのファイルで cbrange を最小/最大に自動的に設定する場合は、次のstatsコマンドを使用できます (バージョン 4.6 以降では、そうでない場合はよりトリッキーになります)。

stats 'datafile1' using 3 name 'd1'
stats 'datafile2' using 3 name 'd2'
stats 'datafile3' using 3 name 'd3'
datamin_z = (d1_min<d2_min&&d1_min<d3_min?d1_min:d2_min<d3_min?d2_min:d3_min)
datamax_z = (d1_max>d2_max&&d1_max>d3_max?d1_max:d2_max>d3_max?d2_max:d3_max)
set cbrange [datamin_z:datamax_z]
于 2012-10-26T16:22:19.930 に答える