我在一个csv文件里面有3列数据,现在想以第一列第二列作为X和Y,画出对应第三列Z的等高线。
以下是我自己的尝试,可以用读入的数据画出三维散点图,但是我想用persp画成连续的等高线,提示要递增的X和Y,做了排序后再画还是提示需要递增X以及Y。网上查了相关内容说是Z必须是一个对应的矩阵,现在想请教一下各位我应该如何处理才能画出连续的等高线? 如果能给予几行核心样例代码就更好了,谢谢各位。
--------------------------------------------------------------------------------------------------------------------------
csvdata <- read.table("test.csv",header=F, sep=",")
csvdata
x <- csvdata[[1]]
y <- csvdata[[2]]
z <- csvdata[[3]]
#画出三维散点图
library(rgl)
plot3d(x,y,z,col="red", size=5)
#画出等高线图,但是提示说需要递增的X和Y
persp(x,y,z)
#尝试排序
dat <- csvdata[order(csvdata[[1]], csvdata[[2]]),]
dat
x1 <- dat [[1]]
y1 <- dat [[2]]
z1 <- dat [[3]]
#排序后再画,但是仍然提示需要递增的X和Y,网上找了相关问题似乎要把Z转换成X和Y对应的矩阵?
persp(x1,y1,z1)
下图是我自己的尝试:
----------------------------------------------------------------------------------------------------------------------------------------------
CSV中的数据样例:
| 30 | 25 | 17055.25 |
| 30 | 26 | 17055.25 |
| 15 | 20 | 16479.06 |
| 31 | 25 | 16475.2 |
| 31 | 24 | 16420.18 |
| 31 | 23 | 16415.19 |
| 32 | 21 | 16395.19 |
| 32 | 23 | 16365.19 |
| 31 | 22 | 16345.19 |
| 32 | 22 | 16345.19 |
| 15 | 19 | 16309.03 |
| 15 | 21 | 16229.04 |
| 16 | 19 | 16189.02 |
| 32 | 24 | 16150.21 |
| 16 | 18 | 16144.04 |
| 33 | 24 | 16130.21 |
| 33 | 23 | 16125.21 |
| 32 | 25 | 16105.22 |
| 33 | 21 | 16105.22 |
| 33 | 22 | 16105.22 |
| 34 | 21 | 16105.22 |
| 9 | 11 | 16050.45 |
| 9 | 17 | 15997.05 |
| 9 | 18 | 15912.03 |
| 14 | 25 | 15899.05 |
| 16 | 21 | 15889.01 |
| 15 | 18 | 15853.99 |
| 17 | 18 | 15814.02 |
| 9 | 19 | 15808.77 |
| 31 | 26 | 15725.27 |
| 9 | 10 | 15630.49 |
| 10 | 13 | 15536.95 |
| 32 | 26 | 15515.3 |
| 33 | 26 | 15495.3 |
| 10 | 11 | 15463.14 |
| 14 | 20 | 15416.45 |
| 30 | 27 | 15357.86 |
| 14 | 21 | 15346.46 |
| 16 | 20 | 15338.95 |
| 32 | 20 | 15318.39 |
| 33 | 25 | 15315.3 |
| 9 | 20 | 15281.83 |
| 44 | 11 | 15254.19 |
| 8 | 19 | 15169.03 |
| 16 | 22 | 15098.94 |
| 29 | 26 | 15052.63 |
| 9 | 16 | 15051.98 |
| 34 | 20 | 15028.4 |
| 8 | 17 | 15025.39 |
| 14 | 24 | 15018.96 |
| 8 | 18 | 14960.39 |
| 60 | 10 | 14950.15 |
| 33 | 20 | 14948.41 |
| 15 | 25 | 14938.97 |
| 15 | 24 | 14928.95 |
| 15 | 17 | 14919.99 |
| 10 | 10 | 14918.51 |
| 44 | 12 | 14899.22 |
| 9 | 15 | 14876.94 |
| 17 | 29 | 14876.21 |
| 30 | 28 | 14857.8 |
| 30 | 24 | 14847.6 |
| 16 | 17 | 14829.98 |
| 43 | 12 | 14827.46 |
| 10 | 17 | 14736.92 |
| 8 | 20 | 14736.13 |
| 18 | 18 | 14724.11 |
| 14 | 26 | 14709.17 |
| 13 | 25 | 14706.48 |
| 8 | 21 | 14706.13 |
| 14 | 19 | 14644.89 |
| 18 | 29 | 14629.88 |
| 31 | 28 | 14617.82 |
| 17 | 16 | 14564.97 |
| 20 | 30 | 14560.91 |
| 14 | 10 | 14505.2 |
| 17 | 17 | 14499.96 |
| 32 | 19 | 14495.18 |
| 20 | 28 | 14484.68 |
| 13 | 10 | 14455.2 |
| 19 | 28 | 14454.68 |
| 32 | 28 | 14427.84 |
| 31 | 27 | 14427.82 |
| 32 | 27 | 14377.82 |
| 9 | 13 | 14351.82 |
| 16 | 16 | 14344.95 |
| 29 | 29 | 14337.97 |