我是R的新绘图,我希望为几个文件做等高线图。这是我到目前为止所得到的。我的文件有3列,X,Y,Z,并带有一些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))
这确实给出了一些结果,但有些事我无法做到:
我对gnuplot比较熟悉,但问题在于范围,因为范围总是自动缩放到颜色,并且似乎很难控制范围。对此的任何帮助也深表赞赏 我可能做错了什么,所以万一有人可以帮助我,并提供正确的方向或正确的软件,我将不胜感激。
答案 0 :(得分:0)
有关于如何在gnuplot中制作轮廓的演示here。你是否有代码制作轮廓图但是它不起作用?
要回答你的第二个问题,在gnuplot中你可能想要的命令是
set cbrange [CB_MIN:CB_MAX]
设置将根据当前调色板着色的值范围。您只需要为您正在制作的所有三个图块发出相同的set cbrange
命令。如果要自动将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]