簡體   English   中英

具有因子變量的R 3d表面圖

[英]R 3d surface plot with factor variables

我有一個非常簡單的問題,但無法理解。 如何為以下數據創建帶有網格的3D表面圖。

x = c("Jan","Feb","Mar","Apr","May","Jun")
y = c("2010","2011","2012")
z = matrix(seq(1:18),nrow=3)

我已經嘗試過類似的方法,但是仍然無法獲得想要的東西。

persp3d(x, y, z)
plot3d(x, y, z)

謝謝。

x是一個因子或字符變量時, persp3d()給出的錯誤意味着它將僅在x使用數字(並且可能在yz也使用數字),因此x, y必須是數字:

x <- 1:6

對應的月份名稱:

month <- c("Jan","Feb","Mar","Apr","May","Jun")

現在,我在這里撤回了前面的聲明,現在我了解了plot3d如何在xy定義的位置映射z值,因此y可以保持原樣,但必須為數字:

y = c(2010,2011,2012)

另外, nrow(z)必須與nrow(x)相同,這同樣可以從嘗試相反的情況下拋出的錯誤中清楚地看出。 所以:

z = matrix(seq(1:18),nrow=6)

在沒有默認軸的情況下繪制曲面:(從這里開始,該方法與我們使用R中的普通2d圖形制作自定義軸非常相似)

library(rgl) persp3d(x, y, z, axes=F, ylab="", zlab="") box3d()

最后添加您的軸:

axis3d(edge='x++', at=x, labels=month, tick=T) axis3d(edge='y--', at=y, labels=y, tick=T, pos=c(0,0,0), line=-1) axis3d(edge='z+-', at=as.integer(range(z)), labels=as.integer(range(z)), tick=T)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM