我有在數據幀中的以下數據:3D圖中的R - 補丁
**x** in (0,1)
**y** in [0,1]
**z** in [0,1]
例如:
X,Y,Z
0.1, 0.2, 0.56
0.1, 0.3, 0.57
...
我想他們繪製在這個類型的圖表:
我試過R,但我所能得到的只是一個not-so-fancy 3d scatterplot。 我也讀了關於lattice 3d wireframe,但我無法理解它。
我該怎麼做才能在R中得到像線框一樣的Matlab? 涉及哪些數據轉換?
這是從文檔中的示例代碼:
x <- seq(-pi, pi, len = 20)
y <- seq(-pi, pi, len = 20)
g <- expand.grid(x = x, y = y)
g$z <- sin(sqrt(g$x^2 + g$y^2))
wireframe(z ~ x * y, g, drape = TRUE,
aspect = c(3,1), colorkey = TRUE)
我並不覺得特別清楚。
編輯:persp3d
函數工作正常,我能夠生成一個顏色的3d圖。如何設置相對於z值的色階?
感謝您的任何提示, Mulone
確實需要一點練習才能將(x,y,z)數據轉換爲線框或其他3-d網格繪圖工具的z值矩陣。學習轉換是值得的,因爲一旦你知道如何,你永遠不會忘記:-)。你可能會喜歡scatterplot3d軟件包,它允許wiregrid繪圖。 –
這是未經測試的,所以它只是作爲評論而不是答案。我會推薦'with(mydata,persp(x = sort(unique(X)),y = sort(unique(Y)),z = matrix(z,ncol = length(unique(x)))))' - - 我不太確定我是否按照正確的順序組織了矩陣(可能是'byrow = TRUE'等。) –
請參閱'example(wireframe)'和'example(persp)'並檢查它是否符合您的需求。 – Marek